簡體   English   中英

jQuery replaceWith不起作用</div>

[英]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水平排列每個組,以創建一些基本的大型菜單功能。 下面的示例與上面的源代碼相關。

  • <標頭1
  • 項目1
  • 項目2
  • >
  • <標頭2
  • 項目1
  • 項目2
  • >

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM