0

HTML5データ-*属性を操作しようとしています。ただし、EasyUIフレームワークを使用しているため、問題が発生しています。

HTML5の定義オプションは次のように設定されます。 <div data-options="{region:'north', title:'North Region', border:true}">

ただし、EasyUIは、次のように設定されていることを強制します(中括弧なし)。 <div data-options="region:'north', title:'North Region', border:true">

独自のパーサー関数を記述せずに属性オブジェクトにアクセスする方法はありますか?私がしなければならない場合、私はしなければなりませんが、私はもっと良い方法があるに違いないと思います。

助けてくれてありがとう。

4

3 に答える 3

1

ソースを見ると、これを行う方法があります。

$.parser.parseOptions(element);

メソッドを抽出したデモ:http://jsfiddle.net/FnJAE/

注:この方法は文書化されていないため、予告なしに変更される場合があります。

于 2012-11-20T19:19:38.490 に答える
0

常にオブジェクトとしてフォーマットされることがわかっている場合は、次のようにすることができます。

jsonData = JSON.parse("{" + element + "}");
于 2012-11-20T19:32:41.953 に答える
0

参考までに、実際にすべての解析を行う必要はありません。HTMLには引用符を変更する必要がありますが、リファレンスjQuery.Data()HTML5を参照してください。

HTML

<div id="Bob" data-options='{"region":"north", "title":"North Region", "border":"true"}'></div>

脚本

console.log($("#Bob").data("options").title);
// Will return String "North Region"

console.log($("#Bob").data("options").region);
// Will return String "north"

console.log($("#Bob").data("options").border);
// Will return String "true"

console.log($("#Bob").data("options")
// will return a JSON Object but it is EASY to convert to Array
var eleData = $("#Bob").data("options"),
    eleArray = new Array();
for (x in eleData) { eleArray[x] = eleData[x]; }
于 2012-11-20T20:05:10.913 に答える