2011-08-21 32 views
2

下面的代碼從div的創建,但李的div仍然出現在源,你有什麼我錯過了?:的jQuery的.html()函數

$(document).ready(function(){ 
    var makeLI = $("div").html("<li class='blue'>" + 
    "Here is a new &lt;li &gt; element.</li>"); 

    $("body").append("<ul>"); 

    $("ul").append(makeLI); 
    }); 

的出版物中指出:

導航到該文件在您的瀏覽器中。這些元素被轉換成 爲具有我們想要顯示的文本的元素。

然而,在FF 6 div的依然是:

<div><li class="blue">Here is a new &lt;li &gt; element.</li></div> 

------------------完整代碼--------- ---------

<!DOCTYPE html> 
<html> 
<head> 
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
<meta charset=utf-8 /> 
<title>JS Bin</title> 
<!--[if IE]> 
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 
<style> 
    .blue { color:blue; } 
    </style> 
</head> 
<body> 
<h1>Rewriting three &lt;div&gt; elements</h1> 
    <div></div> 
    <div></div> 
    <div></div> 

</body> 
</html> 

$(document).ready(function(){ 
    var makeLI = $("div").html("<li class='blue'>" + 
    "Here is a new &lt;li &gt; element.</li>"); 


    $("body").append("<ul>"); 

    $("ul").append(makeLI); 
    }); 
+1

是它只能在FF 6?它不是完成的軟件,也許是因爲如果它只在6。 –

回答

2

makeLIdiv元件。 li是它的孩子。當然,如果你將div附加到某處,它將會在那裏。如果你只是想在li元素追加,你必須調用children

$("ul").append(makeLI.children()); 

或者乾脆省略div

$('body').append($("<ul />").append("<li class='blue'>" + 
"Here is a new &lt;li &gt; element.</li>")); 

順便說一句。 div將在全部瀏覽器中。您可能無法看到它,因爲瀏覽器傾向於更正無效的HTML。 A div元素內ul元素無效,它可能會移動ul。不過,您應該創建有效的HTML。

1

您在$創建DIV( 「格」),跳過這一點,你應該設置

var $li = $("<li>"); 
$li.html("Here is a new &lt;li &gt; element."); 
$li.addClass('blue');