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>

This page puts up a blank alert with the <p> tag, but with <br> it shows '<h3>Eggs</h3>One dozen please', as I'd expected.

This appears to be the case with Firefox 12.0 and Chrome 19.0. IE8 gets it right. Any ideas what might be happening?

4

3 回答 3

8

/没有任何意义,至少在 HTML5 中没有。所以你实际上有:

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

由于 a<p>不能包含 a <h3>,因此浏览器会尝试通过将其解释为:

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

@pimvdb 关于关闭<p>

但是,要注意的另一件事是,您有 a <h3>which 是 a 内的块元素<span>,它是不正确的内联元素。内联元素不应包含块。块可以包含块和/或内联。

对于你的例如。如果您将其更改<span>为 a<div>它可以工作。

于 2012-06-08T13:29:48.733 回答
1

尝试这个:

<p></p>

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

并将工作。您需要关闭标签<p></p>

演示

于 2012-06-08T13:24:08.713 回答