2010-11-20 126 views
0

我需要从HTML元素传递数据并对其进行序列化。目前我可以通过命名HTML标记中的每个单独属性来完成此操作。但它似乎冗长而复杂。如何使用jquery从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) 
+0

是什么$ (这).data输出? – wizztjh 2010-11-20 16:37:26

回答

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" 

但要注意,然后就HTML数据属性data()可能会返回更多。

DEMO

根据您想如何序列数据,JSON.stringify也可能是确定你(生成一个JSON字符串):

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

DEMO

相关问题