我有一个 View ,可以在单击某些按钮时将 select
元素动态加载到页面中。这些 select
中的每一个都具有相同的 id 值,后跟一个基于按钮单击次数的索引值。所以 id 会像
id="my_id_" + numOfClicks;
我还为所有这些选择器赋予了相同的类值
class="selects"
当所选选项在任何下拉列表中发生更改时,拥有事件处理程序的最佳方法是什么。现在我有以下内容:
$('.selects').change(function() {
if($('this option:selected').val() == 0) {
}
else {
}
});
所以我想做的是首先使用“this”获取正确的选择元素,然后找出选择了哪些选项。有没有更好/更有效的方法来做到这一点?
最佳答案
正如您所说,这些是在运行时添加的,您将需要一个委托(delegate)事件处理程序。在处理程序中,正如注释所指出的,只需 $(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
为 true。不过,记住它们是字符串还是很有用的。
关于javascript - 使用 javascript 查找具有选定属性的选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27445586/