我用这个:http://datatables.net/release-datatables/examples/api/select_row.html
这是函数返回选择的行:
function fnGetSelected( oTableLocal )
{
var aReturn = new Array();
var aTrs = oTableLocal.fnGetNodes();
for ( var i=0 ; i<aTrs.length ; i++ )
{
if ( $(aTrs[i]).hasClass('row_selected') )
{
aReturn.push( aTrs[i] );
}
}
return aReturn;
}
我做:
var arr = fnGetSelected(oTable);
这回报我:
[tr.gradeA, tr.gradeA, tr.gradeA]
这是:
<tr class="gradeA even row_selected">
<td class=" sorting_1"><span class="my_values" test="aaa">Gecko</span></td>
<td>Camino 1.5</td>
<td>OSX.3+</td>
<td class="center">1.8</td>
<td class="center">A</td>
</tr>
<tr class="gradeA odd row_selected">
<td class=" sorting_1"><span class="my_values" test="bbb">Gecko</span></td>
<td>Netscape 7.2</td>
<td>Win 95+ / Mac OS 8.6-9.2</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
<tr class="gradeA even">
<td class=" sorting_1"><span class="my_values" test="bbb">Gecko</span></td>
<td>Netscape Browser 8</td>
<td>Win 98SE+</td>
<td class="center">1.7</td>
<td class="center">A</td>
</tr>
我为此自己的span.my_values添加了属性 test 。 现在我想为此获得所有属性测试。
我试试:
arr.each(function(index) {
console.log($(this).children());
});
但是这个返回错误: arr.each不是函数
我该怎么做?
答案 0 :(得分:3)
jQuery的通用数组循环函数是$.each
,而不是Array.prototype
的成员,所以:
$.each(arr, function() {
console.log($(this).children());
});
现在我想为此进行所有属性测试。
如果您想在test
中的元素中获取span
的{{1}}类,其中包含“my_values”类,则可以使用arr
:
$.map
...它为您提供了var testValues = $.map(arr, function() {
return $(this).find('span.my_values[test]').attr('test');
});
值的数组。
附注1:由于您使用的是jQuery(本质上是基于集合的),而不是让test
函数返回fnGetSelected
个匹配元素,所以如何让它返回{ {1}}对象?
Array
创建一个包含所有返回节点的jQuery对象,然后将其过滤为只有“row_selected”类(如原作所做的那样)并返回它。
然后你可以像这样使用它:
jQuery
附注2:“test”是function fnGetSelected( oTableLocal )
{
return $(oTableLocal.fnGetNodes()).filter('.row_selected');
}
元素的无效属性,尽管浏览器允许它。请改用data-*
attributes,例如“数据测试”,而不是“测试”。
答案 1 :(得分:2)
你有没有尝试过:
$.each(arr, function(index) {
console.log($(this).children());
});
或:
$(arr).each(function(index) {
console.log($(this).children());
});
答案 2 :(得分:1)
each()方法仅适用于jQuery对象,而不适用于数组。但是,$.each()支持数组,因此您可以使用它:
$.each(arr, function() {
console.log($(this).children());
});
答案 3 :(得分:1)
arr是一个数组。你必须这样做
$.each(arr,function(index,value) {
console.log(value);
})
您可以将arr转换为jQuery对象,并通过更改函数来使用arr.each():
function fnGetSelected( oTableLocal )
{
var aReturn = $([]);
var aTrs = oTableLocal.fnGetNodes();
for ( var i=0 ; i<aTrs.length ; i++ )
{
if ( $(aTrs[i]).hasClass('row_selected') )
{
aReturn.pushStack( aTrs[i] );
}
}
return aReturn;
}
答案 4 :(得分:1)
您可以将arr
用作:
$(arr).each(function(index) {
console.log($(this).children());
});