今天,我测试了这个,但它不起作用,所以只想知道这个代码应该怎么做。 一行中有多个“OR”
$("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
});
我知道这两个代码都是无效的,那么可以这样编码吗?到目前为止,我一个接一个地编码,所以我的编码很长。
答案 0 :(得分: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
});
答案 1 :(得分:1)
您可以使用多重选择器http://api.jquery.com/multiple-selector/
答案 2 :(得分:1)
您可以简单地使用或在其间放置,
使用此
$("input[name='ABC'],[name='DEF'],[name='GHI'],[name='JKL']").click(function (){
//do something
});
答案 3 :(得分: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));