[英]jquery replaceWith not working with </div>
我一直試圖弄清楚這個問題已經好幾個小時了。我會先問我一個具體的問題,但是如果我的整體方法是錯誤的,然后再給您一個更大的認識。
特定問題:我正在嘗試將列表項元素替換為一些結束標記。 下面的第一個IF語句可以工作,第二個IF語句可以在“ html”變量中使用許多值,但是一旦我將div結束標記插入變量中,替換就不會發生。 我不知道。 我嘗試用1-2個反斜杠在結束標記中轉義斜杠,但這無濟於事(如果使用兩個反斜杠,則會發生替換,但文本將呈現在頁面上而不是代碼中)。
$("li.class1").each(function() {
var li = $(this);
var span = li.find("span.class2").text();
if (span.indexOf("<") == 0) {
var text = $(this).text();
text = text.substring(1, text.length);
li.replaceWith('<li><div><ul><li class="Mheader">' + text + '</li>');
}
else if (span.indexOf(">") == 0) {
var html = '</ul></div></li>';
li.replaceWith(html);
alert(html);
}
});
現在,這樣說..我注意到FireBug在第一次替換發生后顯示關閉標簽,即使我還沒有插入它們。 我希望這只是FireBug的明智之舉,並因為它們丟失而將它們插入。
我實際上要完成的工作:我們有一個應用程序,將一些普通的彈出導航菜單呈現為一個大型,垂直,無序的列表。 我想在此列表中插入一些特殊格式的組名(如下所示),然后使用jquery替換那些特殊格式的組名,以有效地將這些“組”砍成DIV。 然后,我將使用CSS水平排列每個組,以創建一些基本的大型菜單功能。 下面的示例與上面的源代碼相關。
jQuery調整后所需的標記:
<ul>
<li>
<div>
<ul>
<li class=header>header1</li>
<li>item1</li>
.....
</ul></div>
</li>
感謝您的任何反饋。 當我需要諸如此類的信息時,這是我的首選站點,但這是我第一次必須詢問!
謝謝,
湯米
結束標記將自動插入。
您可以以某種方式使用.wrapInner,或執行以下操作:
html = '';
$("li").each(function() { // I removed the class as I don't know if each li has one or if only headers, etc.
var li = $(this);
var span = li.text(); // Same here.. removed the class
if (span.indexOf("<") == 0) {
var text = $(this).text();
text = text.substring(1, text.length);
html += '<li><div><ul><li class="Mheader">' + text + '</li>';
}
else if (span.indexOf(">") == 0) {
html += '</ul></div></li>';
} else {
html += '<li>' + li.html() + '</li>';
}
});
$('ul').html(html);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.