jQuery在选定的行中迭代

时间:2013-09-17 10:21:28

标签: jquery jquery-datatables

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

我有一个变量列号表(根据下拉列表中选择的值,我生成一个包含12或13列的表),因此我不能使用“aoColumns”属性。

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

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

我试过这样的事情:

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

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

$('#productsTable tr').eq(1).children("td").each(function() {
    results.push([{"bSearchable": false}]);
});

答案 1 :(得分: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;
}

使用

时我也意外地引入了一个错误
result.push([{"bSearchable": true}]);

而不是

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

我实际上推动了不同的向量而不是将值推送到初始向量。因此,数据表永远不会获得列集的“bSearchable”值。