我有一個這樣的選擇選項:
<select name="color" id="multipleAttr" class="form-control select-2">
<option value="blue">
<option value="red">
</select>
現在為了用 jQuery 回傳 this 的值,我這樣做了:
$(".select-2").change(function() {
var val = $(".select-2").val();
console.log(val);
});
它作業正常并正確顯示所選專案的值。
但我想通過使用 for 回圈使其更加動態:
var counters = 2;
for(i=2;i<=counters;i ){
$(".select-" i).change(function() {
var val = $(".select-" i).val();
console.log(val);
});
}
所以它應該選擇select-2類值并將其回傳為val.
但它以某種方式列印未定義。
那么這里出了什么問題?我該如何解決這個問題?
uj5u.com熱心網友回復:
您應該使用在 .change 方法中提供給您的事件,而不是在 .change 回呼中再次從 dom 獲取元素。
所以你的代碼會像
var counters = 2;
for(i=2;i<=counters;i ){
$(".select-" i).change(function(event) {
var val = event.target.value;
console.log(val);
});
}
uj5u.com熱心網友回復:
就此而言,為什么要遍歷帶有數字的類名?只需設定一個類來表示具有該功能的所有選擇元素,然后根據需要為其他資訊設定資料屬性。
$('.select').change(function() {
let val = $(this).val();
let myName = $(this).data('num');
console.log(`new val is ${val} from ${myName}`);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select class='select' data-num='select-1'>
<option selected></option>
<option value='33'>33</option>
</select>
<select class='select' data-num='select-2'>
<option selected></option>
<option value='55'>55</option>
</select>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/436050.html
標籤:javascript html jQuery for循环 选择
