2013-12-09 94 views
-2

所以,我有以下幾點:jQuery的:插入HTML元素之前

<li class=" last-item SunItem-8"><a href="#><span>Blah</span></a></li> 

但是我需要有jQuery的插入此之前的幾個HTML元素,所以它看起來像:

</li></ul><li><ul> 

所以看起來就像這樣:

</li></ul><li><ul><li class=" last-item SunItem-8"><a href="#><span>Blah</span></a></li> 

任何幫助表示讚賞

這裏有更多的背景 - 我通過在CMS菜單嵌入結合(不具有源代碼),所以這是菜單的樣子

<li class="dir dgn-root Item-2"> 
    <a href="#" title=""><span>Menu1</span></a><div class="mega_submenu Column2 Column3" style="display: none;"> 
<ul class="mega_submenu_ul"> 
    <li> 
     <ul> 
     <li class=" first-item SunItem-1"> 
     <a href="#" title="Templates"> 
      <span>Templates</span> 
     </a> 
     </li> 
     <li class=" SunItem-2"> 
      <a href="#" title="Questions and Answers"> 
      <span>Questions and Answers</span> 
      </a> 
     </li> 
     <li class=" SunItem-3"> 
      <a href="#" title="Template Package"> 
       <span>Template Package</span> 
      </a> 
     </li> 
     <li class=" SunItem-4"> 
      <a href="#" title="Silver Package"> 
       <span>Silver Package</span> 
      </a> 
     </li> 
    </ul> 
    </li> 
    <li> 
    <ul> 
     <li class=" SunItem-5"> 
      <a href="#" title="Gold Package"> 
       <span>Gold Package</span> 
      </a> 
     </li> 
     <li class=" SunItem-6"> 
      <a href="#" title="Platinum Package"> 
       <span>Platinum Package</span> 
      </a> 
     </li> 
     <li class=" SunItem-7"> 
      <a href="#" title="Features"> 
       <span>Features</span> 
      </a> 
     </li> 
     <li class=" last-item SunItem-8"> 
      <a href="#" title="Portfolio"> 
       <span>Portfolio</span> 
      </a> 
     </li> 
    </ul> 
    </li> 
    </ul> 
    </div> 
    </li> 

你會看到我想只會增加更多的HTML,這將在大菜單的右側創建一個新的菜單。

+2

你嘗試過什麼嗎?請告訴我們你的代碼。 – 2013-12-09 10:24:09

+2

這些不是元素,它們是一對閉合標籤,後跟一對開始標籤。 jQuery只允許插入完整的元素,除非你在字符串中累加標記並使用'html()'。你可能不得不改變你的設計。 –

+1

你能分享一些更多的上下文到html結構 –

回答

2

您正在考慮使用標記,但當您與結構進行交互時,它不再是標記,而是一種DOM結構。

看起來你想要做的是在現有的ul之後開始一個新的ul,並將li移入其中。如果是這樣的話:

var lastItem = $("li.last-item"); 
var currentList = lastItem.closest('ul'); 
var newList = $("<ul>"); 
newList.insertAfter(currentList); 
newList.append(lastItem); 

Live Example | Source