我有一个HTML代码段,如下所示
<tr class="new">
<td>
<input name="id" type="checkbox"/>
<span>9</span>
</td>
<td> // Other Stuff... </td>
</tr>
// other table rows
<tr class="new">
<td>
<input name="id" type="checkbox"/>
<span>12</span>
</td>
<td> // Other Stuff... </td>
</tr>
目前,.find('.new').find('input[name="id"]:checked').next().text().trim();
给了我一个像“912”的字符串。
无论如何我可以取回像[9,12]或[“9”,“12”这样的数组而不必显式遍历.find
片段返回的输入列表?我愿意改变查询以避免迭代。
答案 0 :(得分:4)
您正在寻找jQuery的map
function:
$(...).find('.new input[name="id"]:checked')
.next()
.map(function() { return parseInt($.trim($(this).text(), 10); })
.get()
答案 1 :(得分:2)
您可以使用.map()
,如下所示:
var arr = $('.new input[name="id"]:checked + span').map(function() {
return $.trim((this).text());
}).get();
如果您想要一组数字,只需添加+
,如下所示:
var arr = $('.new input[name="id"]:checked + span').map(function() {
return +$.trim((this).text());
}).get();
答案 2 :(得分:0)
你可以这样做:
myArray = new Array();
.find('.new').find('input[name="id"]:checked').each(function(){
myArray.push($(this).next().text().trim());
});
看起来.map()可能是更复杂的方法。