0

我有点挣扎。我正在尝试利用为元素分配自定义属性的酷特性。但是它不起作用。

基本上,我试图将多个元素分配给该行中的 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在哪里)但是,我无法让它工作。我已经尝试了很多替代方案,甚至试图求助于没有运气。我究竟做错了什么??01.attr()

我收到一条警报,上面写着undefined。当我尝试这myrow.attr("test","works");条路线时,我可以在 DOM 中看到该属性。为什么这种data()方式对我不起作用?

4

1 回答 1

0

我刚刚弄清楚问题是什么。我想在阅读 jQuery.data() 上的文档后,我没有看到有人真正清楚地站出来说:

查看源代码时,您不会在 DOM - 元素中看到数据信息。

感谢这里的每个人,他们确实告诉我,我只是不知道我在读什么(现在我知道预期的内容)

马特写道:“实际上并没有在元素上设置属性或属性;jQuery 将此数据存储在内部缓存中,并且仅将其映射到您选择的元素”

尽管在玩弄了 .attr() 和 setAttribute() 函数之后,我变得更加困惑。

感谢大家!

于 2013-03-07T22:13:08.917 回答