2014-07-18 56 views
0

還有其他關於追加的問題,但這是關於標記順序的。該功能對內容工作正常,但似乎在打開新標籤之前關閉標籤。在此代碼中,單詞被正確放置,但p標籤不在span標籤內。jQuery .append()命令標籤不正確?

HTML:

<div></div> 

JS:

$(document).ready(function() { 
     $("div").append('<span>begin'); 
     $("div").append('<p>middle</p>'); 
     $("div").append('end</span> '); 
}); 

http://jsfiddle.net/dpXv2/1

我想用一個循環來創建的跨度內的多個P的,我怎麼能解決這個問題?

編輯:http://jsfiddle.net/dpXv2/3/這應該是更清楚一點,我刪除了p標籤。

+0

跨度不能包含p元素。 – j08691

+0

試試這個''(「div」)。append(' begin

middle

end');'。再次,'p'不能是'span'的子節點# – Jashwant

+0

@Jashwant這可行,但我需要添加循環來生成內容,這個例子只是簡單地說明了這個問題 – Lableable

回答

0

您需要將p添加到範圍。 例如

$("div").append('<span>begin</span>'); 
$("div span").append('<p>middle</p>'); 
$("div span").after('end'); 

這是因爲附加增加時,你把你的第一次跨越完整標籤。

編輯: 我的錯誤,後放'結束;跨越後的文本 - 顯然。你可以使用:

$("div span").html($("div span").html()+'end'); 

代替

+0

好吧,這個工作,但它會更麻煩一點;有沒有辦法讓它自動完成標籤? – Lableable

+0

不是我所知道的,它看起來像瀏覽器甚至會自動完成使用.html()添加的不完整標籤。 –

0

你的例子工作正常。我不確定你在問什麼。

取決於瀏覽器,他們有時會結束標記添加到頁面中,如果

  • 沒有關閉標籤
  • 父內的標籤,不允許特定父標籤內

此外,我不認爲你可以把p放在span之內,但是你可以把span放在p之內。

span意味着在p標籤內用於與該代碼段相關的任何樣式。