jQuery方法的多个选择器?

时间:2014-01-08 07:10:54

标签: javascript jquery jquery-selectors

是否可以在jQuery on方法中传递多个子选择器?

$("#tablename").on("click", "tr", function() {
}
如果用户单击tr或复选框,则需要触发

单击。类似的东西:

$("#tablename").on("click", "tr input[type='checkbox']", function() {
}

提前致谢...

4 个答案:

答案 0 :(得分:2)

您可以使用multiple selector指定多个选择器

$("#tablename").on("click", "tr, input[type='checkbox']", function() {
});

但是在表格中,所有元素都可以在tr中,所以差异是什么

答案 1 :(得分:1)

您可以使用multiple selector将它们与逗号结合使用,也可以使用右括号。如果您有空格而不是逗号,则将其视为descendant selector

$("#tablename").on("click", "tr, input[type='checkbox']", function() {
});

答案 2 :(得分:0)

您可以将逗号,用于多个选择器

   $("#tablename").on("click", "tr, input[type='checkbox']", function() {
                    //use "," ---^^^---- here for multiple 
    });

参考 multiple-selector

答案 3 :(得分:0)

是的,你可以,你的代码工作正常。但问题是如果复选框在'tr'内,事件将被触发两次。要防止它,您必须强制执行事件委派。您将事件作为参数接收,并在您的代码中使用e.preventDefault()。这将确保不会将click事件从checkbox复制到父'tr'。

$("#tablename").on("click", "tr, input[type='checkbox']", function(e) {
    //e.preventDefault(); // This is wrong, plz check
    e.stopPropagation(); // Hope this will help you one day
});