我正在構建一個表並嘗試添加一些CSS以及一些屬性。我似乎無法找到任何IE7的解決方法。JQuery函數.addClass(),.attr()和.find()在IE7中不起作用,需要解決方法
下面是我在做什麼:
$.each(eat,function() {
//Builds tablerows
var row = document.createElement("tr");
var cellReportId = document.createElement("td");
cellReportId.appendChild(document.createTextNode(this.reportId));
var cellDescription = document.createElement("td");
cellDescription.appendChild(document.createTextNode(this.description));
var cellDrawingNumber = document.createElement("td");
cellDrawingNumber.appendChild(document.createTextNode(this.drawingNumber));
row.appendChild(cellReportId);
row.appendChild(cellDescription);
row.appendChild(cellDrawingNumber);
$(self.tblResults[0]).append(row);
})
$(self.tblResults[0]).find('tr').addClass("DynamicTableTR");
$(self.tblResults[0]).find('tr:not(:first)').attr("onmouseover", "this.style.background='#EDEED5'");
$(self.tblResults[0]).find('tr:not(:first)').attr("onmouseout", "this.style.background='white'");
$(self.tblResults[0]).find('tr:first').addClass("DynamicTableHeaderRow");
$(self.tblResults[0]).addClass("DynamicTable");
}
在底部IE無法正常工作的一部分:
$(self.tblResults[0]).find('tr').addClass("DynamicTableTR");
$(self.tblResults[0]).find('tr:not(:first)').attr("onmouseover", "this.style.background='#EDEED5'");
$(self.tblResults[0]).find('tr:not(:first)').attr("onmouseout", "this.style.background='white'");
$(self.tblResults[0]).find('tr:first').addClass("DynamicTableHeaderRow");
如果試圖在$。每個循環多種不同的方法來格式化「行」元素沒有任何運氣。看起來,.attr()函數在IE中不起作用。
在addClass()函數,它在這裏工作:
$(self.tblResults[0]).addClass("DynamicTable");
但是,如果我嘗試將其應用到該行中。每個$循環這樣它不工作:
$(row).addClass("DynamicTableTR");
我似乎無法爲IE找到任何解決方法。
編輯:
的問題是,CSS /屬性沒有得到應用到我創建秒。
和自我的把定義是:
var self = this; //Capture the current self, outside of the $.each loop
tblResults只是我的網頁上已經定義。
每個對document.createelement的調用在javascript中都很慢 - 你可以更好地製作一個行html的文本字符串,然後添加它。 – Hogan 2010-02-05 18:23:13
「它不起作用」是指:它沒有找到TR或它不添加類? (選擇器或addClass()問題? – pixeline 2010-02-05 18:24:29
哪裏是自我def - 這可能會使問題更清楚。 – Hogan 2010-02-05 18:27:02