2016-05-10 6 views
2

DOMにinput要素を指定すると、textContentというプロパティとvalueというプロパティがあります。入力の値はテキストボックスに表示された値であり、この要素は子を持つことができないことはよく知られています。つまり、<input>something</input>は空の入力とそれに続く兄弟テキストノードを与えますが、終了タグは完全に無視されます。私たちは、この入力のtextContentに値を設定するときしかし、それは何らかの形でのラウンドトリップを存続さ:input要素のtextContentの目的は何ですか?

input.textContent = 'something' 
console.log(input.textContent) // this works 

はまた、プロパティを設定した後、入力はインスペクタで子要素を持つものとして表示されます。 Safari inspector screenshot after setting the text content

多分それは私ですが、私はここで論理的な一貫性は見当たりません。テキストコンテンツを入力に設定する際にタイプエラーが発生するのは良いことではないでしょうか?

現在の動作には何らかの理由がありますか?

答えて

2

DOMはHTMLではありませんが、XML information setに準拠するツリー構造のAPIは、入力要素に続いて入力ノードに変換され、DOMパーサーの動作ではなくHTMLパーサの動作になります。

実際にXHTMLを使用する場合、application/xhtml+xmlとして提供されます。<input>something</input>は、テキストノードの子を持つ入力要素になります。.textContentと同じです。それで、それは全く同じことです。.textContentはそれがそうするように働きます。

関連する問題