我掙扎了一下。我試圖利用爲元素分配自定義屬性的很酷的功能。但它不起作用。問題與jQuery數據
基本上,我試圖分配多個元素到該行TR元素標識信息。下面是它的樣子:
for (x=0; x< theData.length; x++)
{
// create table row
var selector = "wc_" + wID + "_row_" + x;
oRow = document.createElement("TR");
oRow.setAttribute("id", selector);
tBodyO.appendChild(oRow);
var rowCount = 0;
var identCnt = 0;
for (var index in theData[x])
{
identCnt = 0;
if (hasIdentify)
{
for (y=0; y < theIdent.length; y++)
{
console.log("ROW: "+x+" , checking: "+index+" === "+theIdent[y]["data_name"]);
if (index === theIdent[y]["data_name"])
{
myrow = $("#" + selector);
//myrow.attr("test","works");
console.log("ident Dataname: "+theIdent[y]["data_name"]+ " identify:"+theIdent[y]["identify"]+" value: "+theData[x][index]);
jQuery.data(myrow, "test", { first: 16, last: "pizza!" });
alert(myrow.data("test"));
}
}
}
}
}
我遺漏了一些並不真正相關的代碼,但我希望你能得到圖片。我想要做的是這樣的:
我有一個數組包含有關特定行數據的「身份」信息。它可以有0個,1個或更多個這樣的身份片段。我想將這些作爲自定義數據屬性存儲在<TR>
元素上。
每個數據將具有明顯的key
(例如:i_0_1
其中0
是數據行數,1
是單位計) 但是,我不能得到這個工作。我已經嘗試了很多替代方案,甚至試圖求助於.attr()
而沒有運氣。我究竟做錯了什麼??
我收到一條提示,提示undefined
。當我嘗試myrow.attr("test","works");
路由時,我可以看到DOM中的屬性。爲什麼data()
的方式不適合我?
它代替什麼?請注意,設置'data()'將***不會實際設置元素的屬性或屬性; jQuery將這些數據存儲在內部緩存中,並且僅將*映射到您選擇的元素。此外(這與您的問題無關,但只是一個參考),您應該使用'var'聲明變量,否則它們將最終成爲隱式全局變量,它們是* bad *。 – Matt 2013-03-07 21:11:27