2013-12-09 95 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