如何使用jquery从html元素传递整个数据字符串?

时间:2010-11-20 16:30:02

标签: jquery

我需要从HTML元素传递数据并将其序列化。目前,我可以通过命名HTML标记中的每个单独属性来实现。但它似乎冗长而复杂。

<a data-type="2" data-post="101" data-parent="100">Up</a>
var myData = $(this).data("type")+$(this).data("parent")+$(this).data("post")

我可以通过一次调用传递所有数据,而不是命名每个单独的属性吗?例如:

var myData = $(this).data(all the attributes go here in some sort of string/serialized string)

1 个答案:

答案 0 :(得分:4)

注意:这需要jQuery 1.4.4

你可以这样做:

var myData = $(this).data();
var str = '';
for(var i in myData) {
    if(myData.hasOwnProperty(i)) {
        str += myData[i];
    }
}
// generates "2101100"

但请注意,data()可能只返回HTML数据属性。

DEMO

根据您希望序列化数据的方式,JSON.stringify可能也适合您(生成JSON字符串):

var myData = $(this).data();
var str = JSON.stringify(myData);
// generates: {"type":2,"post":101,"parent":100}

DEMO