1

首先,我要感谢所有查看此内容的人,并特别感谢回答此问题的人。

今天,我对此进行了测试,但它不起作用,所以只想知道这段代码应该如何。一行中有多个“或”

$("input[name='ABC']or[name='DEF']or[name='GHI']or[name='JKL']").click(function (){ 
    //do something
});

或者甚至把它放在其他地方,比如......

$("input[name='ABC'][name='DEF'][name='GHI'][name='JKL']").click(function (){ 
    //do something
}else{
    //do something else
});

我知道这两个代码都是无效的,那么可以这样编码吗?到目前为止,我都一一编码,所以我的编码很长。

4

4 回答 4

2

使用逗号分隔元素,如建议的 jhonraymos。

我建议您为所有这些元素添加一个

<input type="text" name="ABC" class="special" />
<input type="text" name="DEF" class="special" />
<input type="text" name="GHI" class="special" />
<input type="button" name="JKL" class="special" />
...

接着

$('input.special').click(function() {
    // do something
});
于 2012-10-14T15:21:41.303 回答
1

你可以使用多重选择器http://api.jquery.com/multiple-selector/

于 2012-10-14T15:16:12.880 回答
1

您可以简单地使用或放置,在它们之间

用这个

$("input[name='ABC'],[name='DEF'],[name='GHI'],[name='JKL']").click(function (){ 
//do something
});
于 2012-10-14T15:16:18.143 回答
0

如果您想要一个更加定制的解决方案,您可以使用类似的东西:

$("input[name]").filter(function() { return this.getAttribute('name').search(/^(ABC|DEF)$/) > 0;});

然后您可以将其包装在一个函数中以根据需要进行抽象并使客户端代码更具可读性。

我建议像:

var attrPattern = function(attrName, pattern) {
  return function() {
    return this.getAttribute(attrName).search(pattern) > 0;
  }
}

然后你可以打电话给

$("input[name"]).filter(attrPattern("name", pattern));
于 2012-10-14T15:28:08.480 回答