我需要遍历表中的所有元素。实际上,我需要迭代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
}
答案 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”值。