javascript - 根据 sibling 的id,用jQuery选择列表中的<li>插入位置

标签 javascript jquery

我有一个常规的 html 有序列表:

<nav id="global_nav">
    <ol class="menu">
    <li id="Section1">Section1</li>
    <li id="Section2">Section2
    <ol>
        <li id="subsection1">Subsection1</li>
            <li id="subsection2">Subsection2</li>
           <li id="subsection3">Subsection3</li>
      </ol>
      </li>
      <li id="Section3" >Item3</li>
  </ol>
</nav>

我也制作了一个小的 html 表单:

<form>
    <label for="nuevo">Insert</label>
    <input type="text" id="nuevo">
    <label for="despues">After the section</label>
    <input type="text" id="despues">
    <input type="button" id="btn" value="Insert">
</form>

重点是能够使用 jQuery 动态地填充列表。例如,如果在文本字段 1 中输入“Section4”,在文本字段 2 中输入“Section3”,则该函数将添加新的 <li>在已存在的“Section3”之后添加文本“Section4”的元素。

我已经这样做了,而且效果还不错:

    $("#btn").click(function(){

    var nuevo=$('#nuevo').val();
    //var despues=$('#despues').val();
    var nl = $('<li></li>').text(nuevo).attr('id', nuevo ).slideDown();

    $(".menu").append(nl);

但是正如您所看到的,我已经注释掉了获取第二个文本字段的值的行,因为我无法理解应该如何引用将确定新项目的位置的同级项目。例如,如果我附加的第一个项目是“Section7”并且它附加到列表的最底部,那么我如何稍后在“Section7”之前附加“Section6”?

您认为我需要使用哪些 jQuery 函数才能完成此任务?到目前为止我只了解一点纯javascript。我试图理解 jQuery 的所有很酷的东西,但在这种情况下,我在文档中发现了很多显然非常相似的函数,所以我很困惑。

谢谢!

最佳答案

这是一个相同的 fiddle 。我希望这有帮助。 http://jsfiddle.net/zy1f7ohc/5/

$("#btn").click(function(){

    var nuevo=$('#nuevo').val();
    var despues=$('#despues').val();

     $('<li></li>').text(nuevo).attr('id', nuevo).insertAfter("#"+despues);

 });

关于javascript - 根据 sibling 的id,用jQuery选择列表中的<li>插入位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29804674/

相关文章:

javascript - Jquery - 如何在不使用 DOM id 的情况下基于 HTML5 颜色选择器更改 css

javascript - 如何使用 jQuery 在悬停元素旁边显示一个 div?

javascript - Fengyuanchen Datepicker - 箭头上一个/下一个

jquery - 带有(html)页面的jquery中的addClass问题

javascript - codeigniter 使用ajax提交表单并在div中显示返回数据

javascript - 自动提示最合适的数据结构是什么?

php - 将 PHP 回显日期转换为客户端本地时间

javascript - 标题中的单独列过滤。如何单独更改每列的搜索过滤器文本框的宽度?

jquery - 使用slideup、向下滑动下拉菜单的jquery效果

javascript - !!~(不是 not not tilde/bang bang tilde)如何改变 'contains/included' 数组方法调用的结果?