你永遠不會在你的循環中設置cell
。您可能打算在條件下(中間位)執行此操作。另外,您正試圖在元素上使用indexOf
;你可能打算使用它的HTML:
function poll() {
var table = document.getElementById("myTable");
//console.log(table);
for (var i = 0; cell = table.cells[i]; i++) {
// ^^^^^^^
if (cell.innerHTML.indexOf('red.png') != -1) {
// ^^^^^^^^^^^^^^
$("#tenantPreviewLive").css('background-color', '#FF0000');
$("#maximiseLive").css('background-color', '#FF0000');
}
}
}
我不建議使用這種形式的循環,但這是最小的改變。
雖然it doesn't look to me like table elements have a cells
property。他們有rows
,而這又有cells
。所以這意味着兩個循環(table.rows
之一和另一個循環的每一行cells
)。
但是當你正在使用jQuery,你可以使用each
:
function poll() {
$("#myTable td").each(function() {
if (this.innerHTML.indexOf('red.png') != -1) {
$("#tenantPreviewLive").css('background-color', '#FF0000');
$("#maximiseLive").css('background-color', '#FF0000');
}
});
}
(即假設你沒有你的#myTable內的任何表。)
您還可能希望停止作爲第一個你會發現:
function poll() {
$("#myTable td").each(function() {
if (this.innerHTML.indexOf('red.png') != -1) {
$("#tenantPreviewLive").css('background-color', '#FF0000');
$("#maximiseLive").css('background-color', '#FF0000');
return false; // <==== Stops the `each` loop
}
});
}
,甚至可能使用jQuery的:contains
僞SE講師:
function poll() {
if ($("#myTable td:contains(red.png)").length > 0) {
$("#tenantPreviewLive").css('background-color', '#FF0000');
$("#maximiseLive").css('background-color', '#FF0000');
}
}
請提供HTML,甚至更好的提琴工作示例 – kapantzak
正如此言,如果通過PHP創建你的表,這將是更好的解決服務器端的代碼,這種變化,而不是解析HTML客戶端...但這可能是完全無用的註釋,具體取決於請求的上下文。 –
@Bartdude,我使用名爲jsonTable的庫創建表結構 - 這全部在客戶端執行。 (還是)感謝你的建議。 – lbrookes