1

HTML要素内のハッシュペアを属性として定義し、それを解析してJavaScriptで処理するオブジェクトにできるようにしたいと考えています。

例:

<div id="test" mydata="{'xkey':'xval','ykey':'yval'}">

<script>
var mydata = JSON.parse($('#test').attr('mydata'));
console.log(mydata.xkey);
</script>

しかし問題は、オブジェクトに変換されておらず、出力が定義されていないことです。

どうすればこれを達成できますか??

4

1 に答える 1

2

キーと文字列値を囲むには、代わりに二重引用符を使用します。

mydata='{"xkey":"xval","ykey":"yval"}'

デモ: http://jsfiddle.net/reAtQ/

前後の二重引用符を保持する必要がある場合は、内側の二重引用符をエンコードできます。

mydata="{&quot;xkey&quot;:&quot;xval&quot;,&quot;ykey&quot;:&quot;yval&quot;}"

デモ: http://jsfiddle.net/reAtQ/1/

またはreplace、解析する前にすべての一重引用符と二重引用符を使用できます。

var mydata = JSON.parse($('#test').attr('mydata').replace(/'/g, '"'));

デモ: http://jsfiddle.net/reAtQ/2/

ただし、キー/値のいずれかに一重引用符が含まれていると、それらが誤って置き換えられることに注意してください。

参照:

于 2013-05-17T04:17:21.737 に答える