0

我有一些嵌套列表,我希望能够插入上一级元素:

<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 字符串?

在此先感谢您的帮助

4

2 回答 2

1

你在寻找这样的东西吗?

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

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

示例小提琴

于 2012-11-16T20:13:45.853 回答
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);
于 2012-11-16T20:09:19.527 回答