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

标签 javascript jquery html

我有一个 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/

相关文章:

javascript - 不知道如何使用 sinon 进行 qunit stub

jQuery 选择 : how to select 1 option value and remove the same one in another select-menu?

jquery - 使用输入掩码时在掩码中指定日期格式?

html - 当显示设置为列表项时元素符号不显示在 dd 标签上

javascript - 文本字段中的描述文本?

javascript - 如何安装 babel-polyfill 库?

javascript - Fuel ux 复选框全选

javascript - 如何使用 JavaScript 创建 .docx 文件而不是 .doc 单词

javascript - 如何使用 JQuery 的 get 函数发布动态 JSON 字符串?

javascript - 使用输入文件更改 img 标签的 src