簡體   English   中英

如何在jquery中選擇更改時獲取所選選項的數據值

[英]How to get data-value of selected option on select change in jquery

我的 html 語法如下

<select id="category" name="category">
  <option value="0">Please Select</option>
  <option value="50" data-value="akne">ACNE</option>
  <option value="11" data-value="rednessbumps">Redness / Bumps</option>
  <option value="15" data-value="sunspotsfreckles">Sunspots / Freckles</option>
  <option value="16" data-value="agingwrinkles">Aging / Wrinkles</option>
  <option value="17" data-value="dry-sensitive">Dry Sensitive</option>
</select>
$("#category").change(function () {
  var selectedItem = $(this).val();
  var abc=$(this).attr("data-value");
});

在這里,我無法在 jquery 中獲取data-value ,我應該如何獲取?

采用

var abc = $('option:selected',this).data("value");

嘗試

 $("#category").change(function() { var selectedItem = $(this).val(); var abc = $('option:selected',this).data("value"); alert(abc); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select id="category" name="category"> <option value="0">Please Select</option> <option value="50" data-value="akne">ACNE</option> <option value="11" data-value="rednessbumps">Redness / Bumps</option> <option value="15" data-value="sunspotsfreckles">Sunspots / Freckles</option> <option value="16" data-value="agingwrinkles">Aging / Wrinkles</option> <option value="17" data-value="dry-sensitive">Dry Sensitive</option> </select>

jQuery 有一個內置的data來做你想做的事:

var abc = $(this).data('value')

但是,您必須首先找到所選選項,然后獲取其值。

 $("#category").change(function () { var selectedItem = $(this).val(); var abc=$(this).find(':selected').data("value"); console.log(abc) });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> <select id="category" name="category"> <option value="0">Please Select</option> <option value="50" data-value="akne">ACNE</option> <option value="11" data-value="rednessbumps">Redness / Bumps</option> <option value="15" data-value="sunspotsfreckles">Sunspots / Freckles</option> <option value="16" data-value="agingwrinkles">Aging / Wrinkles</option> <option value="17" data-value="dry-sensitive">Dry Sensitive</option> </select>

this指的是沒有任何data-value屬性的#category 您應該在其中找到選定的選項。

$(this).find(":selected").attr("data-value");
// Or
$(":selected", this).attr("data-value");

 $("#category").change(function () { var abc = $(":selected", this).data("value"); console.log(abc); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select id="category" name="category"> <option value="0">Please Select</option> <option value="50" data-value="akne">ACNE</option> <option value="11" data-value="rednessbumps">Redness / Bumps</option> <option value="15" data-value="sunspotsfreckles">Sunspots / Freckles</option> <option value="16" data-value="agingwrinkles">Aging / Wrinkles</option> <option value="17" data-value="dry-sensitive">Dry Sensitive</option> </select>

 $(document).ready(function(){ $("#category").change(function () { var selectedItem = $(this).val(); var abc= $('option:selected', this).attr('data-value'); console.log(abc,selectedItem); }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script> <select id="category" name="category"> <option value="0">Please Select</option> <option value="50" data-value="akne">ACNE</option> <option value="11" data-value="rednessbumps">Redness / Bumps</option> <option value="15" data-value="sunspotsfreckles">Sunspots / Freckles</option> <option value="16" data-value="agingwrinkles">Aging / Wrinkles</option> <option value="17" data-value="dry-sensitive">Dry Sensitive</option> </select>

使用$('option:selected', this).attr('data-value'); $('option:selected', this).data('value'); 從所選option訪問屬性

這是 HTML

    <select class="form-control" type="text" onchange="set_bank_branches(this)" id="payment_bank_name" name="payment_bank_name" value="">
<option value=""></option>
<option value="ADB" data-min="16" data-max="16">AGRICULTURAL DEVELOPMENT BANK</option>
<option value="ACC" data-min="13" data-max="13">ACCESS BANK</option>
<option value="BOA" data-min="11" data-max="11">BANK OF AFRICA</option>
</select>

這是獲取選項數據的 Javascript 函數

function set_bank_branches(x)
{

    // This is where I get the data on the option selected
    var minlength= $(x).find(":selected").attr("data-min");
    var maxlength= $(x).find(":selected").attr("data-min");
    alert("maxlength: " + maxlength + " -- minlength: " + minlength);

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM