【发布时间】:2019-04-20 17:25:52
【问题描述】:
我查看了 jquery 文档,我尝试过的每个示例都给我带来了问题。我有一堆不同类的列表项,我只想在一个特定的 li 项之前添加一个 div () 。
然后我想定位一个不同的列表项并添加一个结束 div ()。
当我尝试使用 prependTo 和 append 等但它们都没有工作时,它们会自动关闭我打开的 div。到目前为止,我的代码如下所示:
<ul>
<li class="textbox email">This is the email list item</li>
<li class="textbox address">This is the address list item</li>
<li class="textbox aboutme">This is the aboutme list item</li>
</ul>
我希望它的出现是:
<ul>
<li class="textbox email">This is the email list item</li>
<div class="open"> <!-- div id opened here -->
<li class="textbox address">This is the address list item</li>
<li class="textbox aboutme">This is the aboutme list item</li>
</div> <!-- div is closed here -->
</ul>
目前,如果我尝试:
$("<div>").prependTo(".email");//prependTo append at inside top
输出会像这样自动关闭div:
<ul>
<div></div> <!-- div closed automatically instead of remaining open -->
<li class="textbox email">This is the email list item</li>
<li class="textbox address">This is the address list item</li>
<li class="textbox aboutme">This is the aboutme list item</li>
</ul>
【问题讨论】:
-
<ul>只能包含<li>元素,您正在尝试创建无效的 html -
你尝试过 wrap() 函数吗? api.jquery.com/wrap
-
您可能想要在第一个选项中包含另一个
ul。这是有效的 html:<ul> <li class="textbox email">This is the email list item <ul class="open"> <li class="textbox address">This is the address list item</li> <li class="textbox aboutme">This is the aboutme list item</li> </ul></li> </ul> -
好的,我已经使用了这个代码 $(".email").after("
- ").nextAll("li").appendTo($(".email").next ());所以它的有效 HTML 和一个额外的 UL 可以用于我的手风琴
-
不,不,这不会生成有效的标记。注意第一个
li。第一个li的结束标记在末尾,即第一个li是子ul的父级,而不是兄弟级。同样,将您的表达式输出与我上面的评论进行比较