使用javascript查找包含所选属性的选项

时间:2014-12-12 14:18:38

标签: javascript jquery html

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

id="my_id_" + numOfClicks;

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

class="selects"

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

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

    }
    else {

    }
});

所以我想要做的就是首先使用&#34来获得正确的选择元素;这个"然后找出选择了哪些选项。是否有更好/更有效的方法来做到这一点?

2 个答案:

答案 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/

没有引用这个。