0

新しい要素を作成するために次のいずれを使用しても<ul>、HTMLが空であるのはなぜですか。

var complaintsList = $('<ul/>', { id : 'myId' });

また

var complaintsList = $("<ul id='myId'></ul>");

alert($(complaintsList).html());

リストに要素を追加<li>してHTMLを出力すると、要素のHTMLのみ<li>が表示されます。

誰かが私が間違っていることを説明できますか?

4

3 に答える 3

2

コンソールの場合:

var complaintsList = $('<ul/>', { id : 'myId' });

complaintsList
[
<ul id=​"myId">​&lt;/ul>​
]

complaintsList.html()
""

complaintsList.append("<li>")
[
<ul id=​"myId">​
<li>​&lt;/li>​
</ul>​
]

complaintsList.html()
"<li></li>"

期待どおりに動作します。のhtmlは、ul何も含まれていないため空白です。を追加するliと、リストアイテムが含まれます。

.html()要素のコンテンツのHTMLのみを提供します。したがって、要素に何も含まれていない場合、HTMLは空の文字列になります。outerHTML要素のを取得する必要がある場合は、 jQueryのouterHTMLプラグインを使用できます。

于 2012-06-29T16:27:25.970 に答える
0

http://api.jquery.com/html/によると:

「一致した要素のセットの最初の要素のHTMLコンテンツを取得します。」

.html()要素自体ではなく、要素の内部コンテンツのみを返します。

innerHTMLvsouterHTMLを参照してください。プロパティ.html()に似てい .innerHTMLます。

于 2012-06-29T16:32:49.847 に答える
0

次のうち、新しい要素を作成するために使用するもののいずれでも、HTMLが空であるのはなぜですか

このhtmlメソッドは、jQueryオブジェクトの(最初の)要素内の要素のHTMLコードを返すためです。

誰かが私が間違っていることを説明できますか?

htmlこのメソッドには、jQueryオブジェクトの要素のHTMLコードも含まれていると想定しています。


補足:変数complaintsListにはすでにjQueryオブジェクトが含まれているため、jQueryメソッドを使用するために別のjQueryオブジェクトでラップする必要はありません。

alert(complaintsList.html());
于 2012-06-29T16:36:56.363 に答える