4
<html>
<head>
<script 
    src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" 
    type="text/javascript"/></script>
<script>
$(function() {
    alert($('#s1').html());
});
</script>
</head>
<body>
<p/>
<span id="s1"><h3>Eggs</h3>One dozen please</span>
</body>
</html>

このページは <p> タグで空白のアラートを表示しますが、<br> では予想どおり「<h3>卵</h3>1 ダースください」と表示されます。

これは、Firefox 12.0 と Chrome 19.0 の場合のようです。IE8はそれを正しくします。何が起こっているのでしょうか?

4

3 に答える 3

8

/少なくとも HTML5 では意味がありません。だからあなたは実際に持っています:

<p>
  <span id="s1"><h3>Eggs</h3>One dozen please</span>

<p>にを含めることはできないため<h3>、ブラウザは次のように解釈して、少なくとも何らかの意味を理解しようとします。

<p>
  <span id="s1"></span>
</p>
<h3>Eggs</h3>One dozen please
于 2012-06-08T13:23:33.523 に答える
2

@pimvdbは正しい<p>

ただし、もう1つ注意すべき点は、<h3>a内にブロック要素であるa<span>があり、これは不正なインライン要素であるということです。インライン要素にはブロックを含めないでください。ブロックには、ブロックやインラインを含めることができます。

あなたの例のために。に変更する<span><div>機能します。

于 2012-06-08T13:29:48.733 に答える
1

これを試して:

<p></p>

$(function() {
   alert($('#s1').html());
});

そして動作します。タグを閉じる必要があります<p></p>

デモ

于 2012-06-08T13:24:08.713 に答える