是否有更有效的方法将多个id选择器与jQuery中的子选择器组合在一起?

时间:2016-08-30 19:57:04

标签: jquery jquery-selectors

是否有一些方法可以为多个ID编写jQuery选择器,这些id也使用父>儿童选择器?

我知道我可以这样做......

$('#checkbox1').click(function() {
  // do stuff
});

......或者......

$('#div1 > input[type=checkbox]').click(function() {
  // do stuff
});

......或者......

$('#checkbox1, #checkbox2, #checkbox3').click(function() {
  // do stuff
});

...但是当我将两者结合起来时,它会变得冗长。是否有更有效/紧凑的方式?...

$('#div1 > input[type=checkbox], #div2 > input[type=checkbox], #div3 > input[type=checkbox]').click(function() {
  // do stuff
});

2 个答案:

答案 0 :(得分:1)

使用.children()

$("#div1, #div2, #div3").children("input[type=checkbox]").click(function() {
    // do stuff
});

答案 1 :(得分:1)

由于jQuery实际上只是JavaScript,而你的选择器只是字符串,你实际上可以将它们保存到变量并将它们连接在一起。您可以更进一步将它们存储到一个数组中。例如......

var section = [
    '#checkbox1',
    '#div1 > input[type=checkbox]',
    '#checkbox1, #checkbox2, #checkbox3'
];

$(section[0] + ", " + section[1] + ", " + section[2]).click(function() {
  // do stuff
});

根据您的代码,您可以大大减少选择器的大小。你甚至可以做一些很酷的数组函数,使它成为一种更有效的分组方法。