0

我正在寻找 DOM 元素的嵌套数据。像这样的东西

$("div").data( "test", { 
    first: 16,
    last: "pizza!"
});

这是我制作类似格式的努力。但是 RefAttrValue 变量不表现为变量。

for (var i = 0; i < reference.attributes.length; i++) {
    var RefAttrValue = (reference.attributes.item(i).name);
    $(tableCaption).data("referenceData").RefAttrValue = reference.attributes.item(i).value;
}

这里“参考”的值是一个 XML。具有如下值或可以包含任何类似的 XML。

<facilityreference Name="qtitem_fac" AttrTable='table1' colVal='table1colValue'></facilityreference>

我想以下面的“动态”格式设置data()格式。

$("div").data("test",{ Name: "qtitem_fac", last: "table1colValue" });

请帮忙。

4

3 回答 3

2

据我了解,您需要这样的东西:

var datObj = {};
for (var i = 0; i < reference.attributes.length; i++) {
    var RefAttrValue = (reference.attributes.item(i).name);
    datObj[RefAttrValue] = reference.attributes.item(i).value;
}
$(tableCaption).data("referenceData", datObj );

在您的代码中,我看到了一些问题: 首先:如果您$(tableCaption).data("referenceData", {...})在运行代码之前什么都不做,$(tableCaption).data("referenceData")则行将返回 undefined,这将导致异常。

如果您在变量中有一个字段名称(RefAttrValue在您的情况下),您需要执行类似$(tableCaption).data("referenceData")[RefAttrValue]. 这种表示法是同义词,如果RefAttrValue = "Name",则$(tableCaption).data("referenceData").Name

这样做$(tableCaption).data("referenceData").RefAttrValue您只需使用 name 访问 referenceData 的属性RefAttrValue

于 2013-01-25T13:00:02.243 回答
1

未测试:

 obj = {};

    $('facilityreference').each(function(){
       $.each(this.attributes, function(i, attrib){
           obj[attrib.name] = attrib.value;
      });

    }); // then do something with you object
于 2013-01-25T13:03:17.483 回答
-1
use this...Hopefully this will solve the requirement.!
str = $('#id').data('test');var json = JSON.stringify(eval("(" + str + ")"));alert(json);
于 2013-01-25T13:06:02.307 回答