使用 JavaScript 查找具有选定属性的选择选项

find select option with selected property using javascript

本文关键字:属性 选择 选项 JavaScript 查找 使用      更新时间:2023-09-26

我有一个视图,在某些按钮单击时select元素动态加载到页面中。这些select中的每一个都具有相同的 id 值,后跟一个基于单击按钮次数的索引值。所以 id 会像

id="my_id_" + numOfClicks;

我还为所有这些选择器提供了相同的类值

class="selects"

当所选选项在任何下拉列表中更改时,拥有事件处理程序的最佳方法是什么。 现在我有以下内容:

$('.selects').change(function() {
    if($('this option:selected').val() == 0) {
    }
    else {
    }
});

所以我要做的是首先使用"this"获取正确的选择元素,然后找出选择了哪些选项。有没有更好/更有效的方法可以做到这一点?

正如您所说,这些是在运行时添加的,您需要一个委托的事件处理程序。在处理程序中,正如注释所指出的那样,获取该select框的选定值只是$(this).val()。所以:

$("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是正确的。不过,记住它们是字符串还是很有用的。

假设 html input.selects:

$('body').on('change', '.selects', function() {
    if($(this).val() == '0') {
    }
    else {
    }
});

http://jsfiddle.net/r4pxx0yy/1/

没有报价。