ホームページ  >  記事  >  ウェブフロントエンド  >  カスタム データ属性が json 形式の string_javascript スキルである場合の jQuery のデータ API の問題に関するディスカッション

カスタム データ属性が json 形式の string_javascript スキルである場合の jQuery のデータ API の問題に関するディスカッション

WBOY
WBOYオリジナル
2016-05-16 17:41:531133ブラウズ

jQuery のデータ API 実装にはデータをキャッシュする効果があります
IE 7 を使用すると (IE8 はコンソールで IE7 モードに切り替わります)、DOM ノードにカスタム データ属性がある場合、DOM ノードをチェックして jQuery18305664906559272507 の形で属性を確認できます。 、これはデータ ストレージ オブジェクトからカスタム データを取得するために使用される構造です。

カスタム データ属性が json 形式の文字列である場合、キャッシュされたデータが変更されると、変更されたデータがキャッシュ システムに残り続けるため、注意しないとバグが発生する可能性があります。

コードをコピー コードは次のとおりです。


;


🎜>< ;script>
var ノード = $("#tst");
console.log(node.attr("data-json"));
var data = node.data(" json") ;
console.log(data);
data.b = 'hello';
var data1 = JSON.parse(node.attr("data-json"));
console.log (data1);
console.log('data===data1',data===data1);
var data2 = node.data("json"); (data2) ;
console.log('data===data2',data===data2);
var data3 = JSON.parse(node.attr("data-json"));//次のような値を取得します。
console.log(data3);



実行結果



コードをコピー

コードは次のとおりです: {"a": 123,"b":456} オブジェクト {a: 123, b: 456} オブジェクト {a: 123, b: 456} data===data1 false
オブジェクト {a: 123, b: "hello"}
data===data2 true
オブジェクト {a: 123, b: 456}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。