是否可以将这个返回字符串的jquery链转换为数组而无需单独迭代?
我有一个HTML代码段,如下所示是否可以将这个返回字符串的jquery链转换为数组而无需单独迭代?,jquery,Jquery,我有一个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> <
<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>
9
//其他东西。。。
//其他表行
12
//其他东西。。。
当前,a.find('.new').find('input[name=“id”]:checked').next().text().trim()代码>给我一个类似“912”的字符串
我是否可以返回[9,12]或[“9”,“12”]这样的数组,而不必显式地遍历返回的输入列表。查找代码片段?为了避免重复,我愿意更改查询。您正在寻找jQuery的:
您可以这样使用:
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();
如果您想要一个数字数组,只需添加一个+
,如下所示:
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();
您可以这样做:
myArray = new Array();
.find('.new').find('input[name="id"]:checked').each(function(){
myArray.push($(this).next().text().trim());
});
看起来.map()可能是更复杂的方法。我总是把PHP和JavaScript数组搞混。。。应该可以了。@Nick-Noob问题:$('.new input[name=“id”]:checked+span')是否优化了我的查询,并将我从其他find()+next()遍历中保存了下来?@papdel-yup,它会找到输入之后的
元素:)@Nick-而且您可能在这之前缺少$construct@Nick-你能告诉我“+”是怎么回事吗将字符串转换为数字数组?[Arrgh,我对jquery知之甚少]@papdel-+
是JavaScript,.map()
只是得到一个数组,+
在添加时将每个成员转换成一个数字。谢谢你的回答,@SLaks。我可能会接受尼克的回答,因为它为我省下了额外的疑问、道歉。。。