2017-06-30 7 views
-1

Firefox 54では、最初と3番目のチェックボックスは内側のテキストを表示しますが、2番目のチェックボックスは同じ構造を持ちます。この行動の理由は何ですか?JavaScript/HTMLのチェックボックスの内部表示が一貫しないHTML

input2 = document.getElementById("input2"); 
 
input2.innerHTML = "Check me inner HTML"; 
 
input2.innerText = "Check me inner Text"; 
 

 
input3 = document.createRange().createContextualFragment("<input type='checkbox'>Check me fragment</input>"); 
 
document.body.appendChild(input3);
<input type="checkbox">Check me HTML</input> 
 
<input type="checkbox" id="input2"></input>

+1

ブラウザは、無効なHTMLを望みどおりに処理できます。ルールはありません。 ['input'](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input)は空の要素です。「_開始タグを持つ必要があり、終了タグを持つことはできません」 。 – Teemu

+1

''は空白要素であり、終了タグもありません – charlietfl

+1

HTML [''](https://developer.mozilla.org/en/docs/Web/HTML/Element/Input)要素は空要素です終了タグを持つことはできません。 – PeterMader

答えて

1

<input>要素は、 "内部HTML" を持っていません。結果のHTML構造は次のとおりです。

<input type="checkbox">Check me HTML 
<input type="checkbox" id="input2">Check me inner Text</input> 
<script type="text/javascript">/* your js */</script> 
<input type="checkbox">Check me fragment 

2番目のHTMLは有効ではありません。 「内部」テキストはレンダリングされません。

第3のレンダリングが適切にレンダリングされる理由はわかりません。ブラウザは、ページに含まれる前にフラグメントを修正することができます。
</input>が削除され、HTMLが有効になることがあります)

関連する問題