0

考虑一个具有 HTML5 数据属性的 html 元素,例如:

<div id="thediv" data-id="somenumber" data-lang="somestring" data-foo="" data-bar="somestring"></div>

我想要做的是循环数据对象并创建变量,如

var key = value;

我的代码如下所示:

var itm = $("#thediv");
$.each(itm.data(), function(k,v) {
eval("var " + k + " = '" + v + "';");
});

第一的:

我需要引用这些值,因为如果有一个空值,我会收到错误消息。但这没关系,因为我只需要字符串形式的值,如果需要,我可以在后面的代码部分重新解析它们。

问题是我没有得到变量。假设我想查看我执行的输出

console.log("id =" + id);

我得到“id 未定义”

4

2 回答 2

0

您的代码的问题在于它在jQuery.each块内定义变量,而您正试图在块外访问它。

window.yourvariable所以尝试使用eval将变量作为全局变量。

JS:-

var itm = $("#thediv");
$.each(itm.data(), function (k, v) {
    eval("window." + k + " = '" + v + "';");
});

JSFiddle

于 2013-11-28T09:09:41.250 回答
0

就我个人而言,我应该使用“.data()”函数将数据保存在“body”标签中

var itm = $("#thediv");
  $.each(itm.data(), function (k, v) {
  $( "body" ).data( k, v );
});

您可以轻松检索数据

alert( $( "body" ).data( "varName" ) );
于 2015-11-17T14:37:42.347 回答