2016-09-01 5 views
0

オープナーとその近くの一重引用符( ')がdocument.documentElement.outerHTMLの二重引用符(' ')としてレンダリングされるのはなぜですか?それを防ぐ方法は?HTML属性のオープナーとそれ以上の( ')がdocument.documentElement.outerHTMLで(' ')としてレンダリングされるのはなぜですか?それを防ぐ方法は?

私は私のhtmlページにこの要素を持っている:"について

<div data-css="mo-cssclassvalueuseditems" class="{MO-CSS-CLASS value=&quot;UsedItems&quot;}"> 
</div> 

を:私は、結果として、document.documentElement.outerHTMLを経由して、全体のhtmlを取得しようとしました

<div data-css="mo-cssclassvalueuseditems" class='{MO-CSS-CLASS value="UsedItems"}'> 
</div> 

が、それは次のようになり、それは全く問題ではありません。しかし、単一引用符( ')の最初と最後には、一重引用符(')ではなく二重引用符( '')で表示されるのはなぜですか?

引用符をそのまま使用する方法はありますか?

+0

ほとんど問題ありません! http://stackoverflow.com/questions/2373074/single-vs-double-quotes-vs – ajaykumar

+0

@ajaykumarはい、もちろん、それは引用の使用のための問題です。私が "全く問題ではない"とは、二重引用符を '& 'にレンダリングすることです。結局のところ、二重引用符に再度レンダリングされるため、問題はありませんが、残念ながら一重引用符では起こりません。 –

答えて

1

DOMがロードされると、すべての要素と属性の論理的関係を表すDOMデータ構造に変換されます。ソースコードは保持されません。したがって、class属性には値{MO-CSS-CLASS value="UsedItems"}が含まれているという情報しかありません。元のHTMLで一重引用符または二重引用符を使用したという事実は、DOMへのこの翻訳では失われます。要素がinnerHTMlまたはouterHTMLプロパティを読み取ることによってシリアル化されると、属性値は常に二重引用符で囲まれます。

+0

それでは。 私の場合、 '{MO-CSS-CLASS value =" UsedItems "}'タグは構文と似ているので、最後に特定の値に変換されます。しかし、最終的に要素は 'class =" {MO-CSS-CLASS value = "UsedItems"} "'になるので、システムは同じ引用符を含んでいるため読み込めません。したがって、javascriptで二重引用符の代わりに一重引用符を持つ "元の"構文を取得することは可能ですか? –

+0

あなたが何を求めているのか分かりません。値の周りに**使用されている引用符は、属性自体の値に影響しません。 – Barmar

+0

なぜこれに 'outerHTML'を使用していますか? 'documentElement.className'を使用して' class'属性の内容を取得します。 – Barmar

関連する問題