1

我需要遍历表中的所有元素。实际上,我需要遍历 HTML 表的所有列,为 datatables jquery 插件设置“bSearchable”属性。

我有一个可变列号表(基于在下拉列表中选择的值,我生成一个包含 12 或 13 列的表),所以我不能使用“aoColumns”属性。

我需要将每列“bSearchable”的自定义javascript数组设置返回到“aoColumns”为真或假;

所以,我需要添加到这个向量 "bSearchable" : true 为第一列和 "bSearchable" : false 为所有其他列。

我试过这样的事情:

function setSearchable() {
    var result = new Array();
    result.push([{"bSearchable": true}]);
    $('#productsTable tr').eq(1).  // this is where I got stuck
}
4

2 回答 2

2

要查找<td>给定行中的所有元素,请使用find.

$('#productsTable tr').eq(1).find("td");

或者,更具体地说,要查找<td>该行的所有子元素(直接后代),请使用children.

$('#productsTable tr').eq(1).children("td");

您可以使用该each方法进行迭代,尽管听起来您根本不需要在这里循环,因为您只关心元素的数量,而不是特定的元素。

$('#productsTable tr').eq(1).children("td").each(function() {
    results.push([{"bSearchable": false}]);
});
于 2013-09-17T10:29:30.897 回答
0

这是我最终使用的功能:

 function setSearchable() {
var result = new Array();
result.push({ "bSearchable": true });
var index = 0;
$('#productsTable tbody tr:eq(0) td').each(function () {
    if (index != 0)
        result.push({ "bSearchable": false });
    index++;
});
return result;
}

我也在使用的时候不小心引入了一个bug

result.push([{"bSearchable": true}]);

代替

 result.push({"bSearchable": true});

我实际上推送了不同的向量,而不是将值推送到初始向量。结果,数据表从未获得列集的“bSearchable”值。

于 2013-09-17T11:05:05.577 回答