我已按如下方式搜索元素:
var names = $('[name="' + name + '"]');
如何进一步缩小该结果,例如搜索特定值?
显而易见的答案是:
var names = $('[name="' + name + '"][value="' + value + '"]');
但是我特别想将它分成两步。我查看了find()和has(),但是它们都在dom中,而不是dom属性。
非常感谢任何帮助。
答案 0 :(得分:7)
改为使用.filter
:
var names = $('[name="' + name + '"]').filter('[value="' + value + '"]');
如果你宁愿避免(可能不安全)字符串连接,你可以使用过滤功能:
$(selector)
.filter(function() {
return (this.attr('name') === name);
})
.filter(function() {
return (this.attr('value') === value);
});
答案 1 :(得分:0)
为了补充@Alnitak答案,您可以在同一个第一个查询中使用多个过滤器,例如:
$('[name="' + name + '"]')
.filter('[value="value1"']).doStuff({})
.end() //goes back to '[name="' + name + '"]
.filter('[value="value2"']).doStuffTwo({});