2
我想添加一個類到特定行中的td。我不想大驚小怪數字指數,而是通過列名訪問td。爲了話,我願意做這樣的事情:jquery datatables - 按列名得到一個td
for each row in the table where the column "role" contains "some text"
do add the "red" class to the td in the "email" column.
我已經找到一種方法來做到這一點,但我不是很滿意吧;我覺得它太複雜了。有人有更簡單的建議嗎?
在下面的例子中,我添加類「紅」在列「電子郵件」在TD爲在「角色」列「一些文本」的每一行:
tab = $("#myTable").dataTable({
"data": dataset,
"columns": [
{ "data": "uid", name: "uid" },
{ "data": "name", name: "name"},
{ "data": "role", name: "role"},
{ "data": "email", name: "email"}
]
});
function GetTdByName(row, column_name) {
var idx = row.nodes().column(column_name + ":name")[0];
var selector = "td:eq(" + idx + ")";
return row.nodes().to$().find(selector)
}
$("#btn").click(function() {
var ta = $('#myTable').DataTable();
ta.rows().every(function() {
if ($.inArray(this.data().role , ["some text", "some other text,"]) > -1) {
GetTdByName(this, "email").addClass("red");
}
})
})
更新
我找到了一個更好的方法來做到這一點。其實,最該解決方案可以在官方文檔中找到:column-selector
ta.rows().every(function() {
if ($.inArray(this.data().role , ["some text", "some other text,"]) > -1) {
$(ta.column("email:name").nodes()[this.index()]).addClass("red");
}
})
感謝markpsmith,但它不符合要求:_「通過列名訪問td」_。你的例子只使用硬編碼的數字索引。 – user3648449 2015-04-07 21:33:41