我有以下HTML button
:
<button name="foo" class="one active">cat</button>
<button name="foo" class="one active">dog</button>
<button name="foo" class="one active">hamster</button>
<button name="foo" class="one">rhino</button>
<button name="foo" class="one">rat</button>
给出以下jQuery
代码:
var res = $('button[name=foo]', '#my-form').filter(function () {
return $(this).hasClass('active');
}).text();
res
以字符"catdoghamster"
结束时,我希望将结果放在["cat", "dog", "hamster"]
等数组中。
如何根据类过滤上述按钮并返回数组中按钮的text
?
答案 0 :(得分:2)
这是一个不使用.filter()
的解决方案,但适用于您已经提供的方案
var res = [];
$("button[name=foo].active").each(function(){ res.push($(this).text()})
这适用于选择器足够好。
答案 1 :(得分:1)
你可能想要一个除了过滤器之外的地图,然后在地图内部而不是在地图之后返回文本
var res = $('button[name=foo]', '#my-form').filter(function() {
return $(this).hasClass('active');
}).map(function() {
return $(this).text();
}).get();
console.log(res);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="my-form">
<button name="foo" class="one active">cat</button>
<button name="foo" class="one active">dog</button>
<button name="foo" class="one active">hamster</button>
<button name="foo" class="one">rhino</button>
<button name="foo" class="one">rat</button>
</form>
&#13;
作为旁注,过滤器似乎是不必要的,就像你可以做的那样
$('button[name=foo].active', '#my-form')