我有一个视图,可以在某些按钮点击时动态加载select
元素到页面中。这些select
中的每一个都具有相同的id值,后跟一个索引值,该值基于单击按钮的次数。所以id就像
id="my_id_" + numOfClicks;
我还为所有这些选择器提供了相同的类值
class="selects"
在任何下拉列表中所选选项发生更改时,有一个事件处理程序的最佳方法是什么。现在我有以下内容:
$('.selects').change(function() {
if($('this option:selected').val() == 0) {
}
else {
}
});
所以我想要做的就是首先使用&#34来获得正确的选择元素;这个"然后找出选择了哪些选项。是否有更好/更有效的方法来做到这一点?
答案 0 :(得分:2)
正如您所说,这些在运行时添加,您将需要一个委派的事件处理程序。在处理程序中,正如评论所指出的那样,只需$(this).val()
即可获得该select
框的选定值。所以:
$("selector for some container they're in").on("change", ".selects", function() {
if($(this).val() == 0) {
}
else {
}
});
例如,如果他们全部位于具有班级container
的元素内,则:
$(".container").on("change", ".selects", function() {
if($(this).val() == 0) {
}
else {
}
});
如果没有其他合适的容器,您可以使用$(document).on(...
,但通常情况下处理它们的位置会更好。
旁注:值始终为字符串,但==
会强制执行,因此"0" == 0
为真。尽管如此,记住他们的字符串仍然很有用。
答案 1 :(得分:1)
假设html输入。选择:
$('body').on('change', '.selects', function() {
if($(this).val() == '0') {
}
else {
}
});
http://jsfiddle.net/r4pxx0yy/1/
没有引用这个。