2012-11-16 36 views
0

我有一些嵌套列表,我希望能够插入一级别的元素:jQuery的插入HTML字符串,而不是DOM节点

<ul> 
<li>Item 1 
<ul> 
<li class="selecteditem">Item 1.1</li> 
<li>Item 1.2</li> 
<li>Item 1.3</li> 
</ul> 
</li> 
<li>Item 2</li> 
</ul> 
<!-- language: lang-js --> 
//I try to do it as follows: 
$('li.selecteditem').after('</ul></li><ul>"... 

但后()方法只允许插入DOM节点,所以所有关闭的标签“”被忽略。 有没有一种方法可以将字符串恰好注入到我想要的位置?

在此先感谢您的帮助

+0

我不明白你的问题,你可以粘贴你想要你的html结果吗? –

回答

0

我看你现在需要的,但DOM操作只能发生给DOM节点,或可转换为DOM节点有效的标记。你可以做的是这样的,虽然这是一个非常hacky的解决方案:

var html = $('ul').html().replace('<li class="selecteditem">Item 1.1</li>','<li class="selecteditem">Item 1.1</li></ul></li><ul>...'); 
$('ul').html(html); 
+0

是的,我自己也在想这件事,这很不好意思,但如果这是我们的全部,那么它不是那种黑客,而是正确的答案...... – user997593

1

你在找这样的吗?

$('.selecteditem').append('<li>Item 1.4</li>');​ 

如果您使用.append()您将html插入到保留html的某个元素中。

Example Fiddle

相关问题