在jquery data()对象上循环,并将值写入以键为变量名的变量中

Loop over jquery data() object and write values in variables with key as variable name

本文关键字:变量名 变量 data jquery 对象 循环      更新时间:2023-12-14

考虑一个具有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 is undefined"

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

所以尝试在eval中使用window.yourvariable将变量设置为全局变量。

JS:-

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

JSFiddle

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

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

您可以通过检索数据

alert( $( "body" ).data( "varName" ) );