我在for
循环中有一个简单的函数。我想当我选择其中一个select
元素时,会显示一个警告并告诉我我选择的值。
但for循环的参数i
并不起作用。
问题是什么?
<select id="s1">
<option value="choose">choose</option>
<option vaue='1'>1</option>
<option vaue='2'>2</option>
</select>
<select id="s2">
<option value="choose">choose</option>
<option vaue='1'>1</option>
<option vaue='2'>2</option>
</select>
<script src="jquery-1.11.3.min.js"></script>
<script>
for(i=1; i<=2; i++)
{
$("#s"+i).change(function()
{
var sValue = $("#s"+i).val();
alert(sValue);
});
}
</script>
答案 0 :(得分:1)
试试他的:
$('select').on('change', function(){
alert($(this).val());
});
答案 1 :(得分:0)
你可以试试这个:
for (i = 1; i <= 2; i++) {
$("#s" + i).change(function() {
var sValue = this.value || 0;
alert(sValue);
});
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="s1">
<option value="choose">choose</option>
<option vaue='1'>1</option>
<option vaue='2'>2</option>
</select>
<select id="s2">
<option value="choose">choose</option>
<option vaue='1'>1</option>
<option vaue='2'>2</option>
</select>
&#13;
答案 2 :(得分:0)
另一种方法是使用语句let
声明该变量以使其正常工作。
let
语句声明一个块作用域局部变量,可选择将其初始化为一个值。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="s1">
<option value="choose">choose</option>
<option vaue='1'>1</option>
<option vaue='2'>2</option>
</select>
<select id="s2">
<option value="choose">choose</option>
<option vaue='1'>1</option>
<option vaue='2'>2</option>
</select>
<script>
for (let i = 1; i <= 2; i++) {
$("#s" + i).change(function() {
var sValue = $("#s" + i).val();
alert(sValue);
});
}
</script>
&#13;
或者,只需使用this
上下文:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="s1">
<option value="choose">choose</option>
<option vaue='1'>1</option>
<option vaue='2'>2</option>
</select>
<select id="s2">
<option value="choose">choose</option>
<option vaue='1'>1</option>
<option vaue='2'>2</option>
</select>
<script>
for (let i = 1; i <= 2; i++) {
$("#s" + i).change(function() {
var sValue = $(this).val(); // <--- HERE
alert(sValue);
});
}
</script>
&#13;