在我的应用程序中,我试图在访问onchange函数时获取选择框的id。 这里有两个选择框,都指向相同的功能检查。选择这两个选择框时,如何获得选择框的ID。示例1和示例2.
<select id="example1" onchange='check()'>
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
<option value="4">four</option>
</select>Example 2 :
<select id="example2" onchange='check()'>
<option id="1">one</option>
<option id="2">two</option>
<option id="3">three</option>
<option id="4">four</option>
</select>
我的Jquery功能,但它只获得第一个选择框的ID。
<script>
function check(){
var id = $('select').attr('id');
alert(id);
}
</script>
答案 0 :(得分:5)
您需要使用 $(this)
<script>
function check(){
var id = $(this).attr('id');
alert(id);
}
</script>
我建议你摆脱内联JavaScript(从select元素中删除 onchange )。然后使用此代码:
$("select").on("change", function() {
var id = $(this).attr("id");
alert(id);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="example1">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
<option value="4">four</option>
</select>Example 2 :
<select id="example2">
<option id="1">one</option>
<option id="2">two</option>
<option id="3">three</option>
<option id="4">four</option>
</select>
修改强> 我假设您使用jQuery是因为您在问题中写了 $('select')。
答案 1 :(得分:1)
您可以更改内联函数调用以传递this
:
onchange='check(this)'
然后你的功能将如下所示:
function check(t){
var id = t.id;
alert(id);
}