为什么JQuery .html()不适用于singel div标签?

时间:2014-11-21 10:15:21

标签: javascript jquery html

在JQuery(2.1.1。+ FF 33.1).html()中不适用于singel div-Tags?

 <head>
    <title>jquery Test</title>
    <script src="jquery-2.1.1.js" type="text/javascript"></script>
 </head>

 <body>

 <script type="text/javascript">

 $(document).ready(function(){
    $("#name").html( "hans" );

    alert( "hans2:" + $("#name2").html() + ":");

    $("#name2").html( "hans2" );

    $("#name3").html( "hans3" );

    $("#version").html( $().jquery );

 });

 </script>

 JQuery-Version: :<div id="version">??</div>:

 Name: :<div id="name">??</div>: <<< work

 Name: :<div id="name2"/>: <<< not work

 Name: :<div id="name3">??</div>:

 <br>
 End

 </body>

结果:

  

JQuery-Version ::

     

2.1.1

     

:姓名::

     

汉斯

     

:姓名::

     

hans2

声明:

 $("#name2").html( "hans2" );

替换完整的html直到文件结尾!

1 个答案:

答案 0 :(得分:3)

<div id="name2"/>是无效的HTML。使用a validator

如果元素是void元素,则start tag末尾只能有/

div的结束标记是必需的。

在您尝试将内容放入$("#name2").html( "hans2" );之前,div不会在文档结束前关闭,因此Name: :<div id="name3">??</div>:<br> End会从文档中删除#name3