Jquery插入html字符串而不是DOM节点

时间:2012-11-16 20:01:13

标签: jquery string 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>"...

但是after()方法只允许插入DOM节点,因此忽略所有关闭的标记“”。 有没有办法将这个html字符串完全按照我想要的方式注入?

提前感谢您的帮助

2 个答案:

答案 0 :(得分:1)

你在找这样的东西吗?

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

如果您使用.append(),则将html插入某个元素,并将html保留在其中。

Example Fiddle

答案 1 :(得分:0)

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

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);