【问题标题】:How to delete list-divider li once delete all of its child li如何删除列表分隔符 li 一旦删除其所有子 li
【发布时间】:2012-10-09 12:49:23
【问题描述】:

我正在使用带有数据拆分图标“删除”的 jquery 移动列表视图。在该列表视图中,我使用数据分隔器将 li 与不同的组分开。一旦从该数据分隔符下的列表视图中删除所有 li,我想删除特定的数据分隔符。说例子:检查下面的listview代码sn-p。

<ul data-role="listview" data-autodividers="true" data-theme="c" data-divider-theme="d" data-split-icon="delete" data-split-theme="c">
    <li id="group1" data-role="list-divider">Group 1</li>
    <li id="item1">
        <a href="animals.html" data-rel="dialog" class="ui-link-inherit">Cat</a>
        <a id="del_4" data-theme="c"></a>
    </li>
    <li id="item2">
        <a href="animals.html" data-rel="dialog" class="ui-link-inherit">Dog</a>
        <a id="del_5"></a>
    </li>

    <li id="group2" data-role="list-divider">Group 2</li>
    <li id="item1">
        <a href="animals.html" data-rel="dialog" class="ui-link-inherit">Fish</a>
        <a id="del_4" data-theme="c"></a>
    </li>
</ul>

在上面的代码中,如果我删除 li "Fish",我也想自动删除 "Group 2" list-divider li,因为这个组下没有 "li"。我正在尝试单独删除“li”,但是一旦删除了所有子“li”,我就无法删除列表分隔符“li”。

【问题讨论】:

  • 您有重复的 id 值,这使得找到解决方案相当棘手。如果每个组都是它自己的一组带有项目的div&gt;ul 标签,那么整个事情可能会更容易。这样,您可以例如在删除后检查每个 ulli 的长度,然后将整个组(删除父 div)删除为空。
  • 如果你不介意的话可以给我一个样品

标签: jquery listview jquery-mobile


【解决方案1】:

首先获取组 id。

   var p_id=$(this).parent().parent().attr("id");

然后检查它的孩子

  var childDivs = $("#"p_id li);

如果不包含子则删除。

   if(childDivs.length<1)
         $("#"p_id).remove();

【讨论】:

  • 嗨,当我提醒(p_id)时,它告诉未定义,它没有检索组 ID。我在 $("[id*=del_]").live("click", function(){ //alert($(this).attr('id')); var p_id=$(this) .parent().parent().attr("id"); alert(p_id);});请检查。
  • $(this).parent().attr("id");提醒它它给了什么。
  • 它给出了点击列表 li id,我的意思是如果我删除 fish 它会提醒 item1
  • okz 我看到您的 html 代码 item1 不在 group2 中,您需要使用 div 或 li 将它们放在一起,然后代码才能正常工作。
  • 对不起,我不明白你说什么要放在 div/li 中。请检查我拥有的上述 html 代码。告诉我如何改变那个。
猜你喜欢
  • 1970-01-01
  • 2012-08-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-18
  • 1970-01-01
  • 2011-10-27
  • 1970-01-01
  • 2012-01-26
相关资源
最近更新 更多