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そこで、in 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 に答える