使用jQuery删除Div

时间:2014-01-06 10:44:38

标签: jquery html closest

这是我的代码

<div class="k-top">  
  <span class="k-in">Module = UserManagement</span>
</div>

<ul class="k-group">
   <li class="k-item">
     <div class="k-top">
         <span class="k-in">Forms = Manage Users</span>
     </div>
         <ul class="k-group" >
             <li id="treeview_tv_active">
                <div class="k-top">
                       <span class="k-state-selected k-in">Tasks = Modify</span>
                </div>

               <ul class="k-group">
                     <li class="k-item" >
                         <div class="k-top">   //I want to delete This DIV
                           <span class="k-in">Roles = User, Admin, Approver</span>
                        </div>
                    </li>
                    <li class="k-item k-last" >
                        <div class="k-bot">
                           <span class="k-in">Roles = User,Admin,</span>
                         </div>
                   </li>
              </ul>
         </li>      

我尝试过以下jQuery

$('.k-in').closest('.k-top').remove();

删除以下div

<div class="k-top">   
     <span class="k-in">Roles = User, Admin, Approver</span>
 </div>

但是这会删除所有带有class ="k-top"

的div

如何删除上述代码中的特定div

请帮我解决这个问题

7 个答案:

答案 0 :(得分:2)

那是因为你有多个分类与“k-in”类。您正在使用的选择器拉出所有5个“k-in”类元素,然后找到具有“k-top”类的最接近元素(在每种情况下,这是它们的父级除了最后一个),然后删除他们都是。

如果您只想专门删除其中一个分隔符,可以为其指定唯一标识符并选择:

<ul class="k-group" >
         <li id="treeview_tv_active">
            <div class="k-top">
                   <span class="k-state-selected k-in" id="k-in-3">Tasks = Modify</span>
            </div>

    <ul class="k-group">
         <li class="k-item" >
            <div class="k-top">   //I want to delete This DIV
                   <span class="k-in" id="k-in-4">Roles = User, Admin, Approver</span>
             </div>
         </li>
         ...

通话:

$('#k-in-4').closest('.k-top').remove();

答案 1 :(得分:1)

试试这个:

$('li ul.k-group .k-item:first-child').remove();

Working Demo

修改

试试这个:

$('.k-group .k-item .k-group .k-group .k-item:first-child .k-top').remove();

Updated Demo

答案 2 :(得分:0)

尝试使用:

$('.k-in:contains("Roles = User, Admin, Approver")').parent('.k-top').remove();

请参阅http://jsfiddle.net/336SX/

答案 3 :(得分:0)

最好是为要删除的div提供ID并尝试以下操作:

$('#divID').remove();

类选择器将返回太多元素,因为许多元素具有相同类,结构几乎相似。

答案 4 :(得分:0)

我从root开始删除div

$( 'ul li ul li ul li div.k-top').remove();

注意与div关联的li标签(已删除)仍然存在。要摆脱li,您可以使用此版本:

$( 'ul li ul li ul li:first').remove();

如果省略第一个ul标签(root)

,它仍然有效
$( 'li ul li ul li:first').remove();

答案 5 :(得分:0)

您想何时删除元素?

如果是元素点击,您可以执行以下操作:

$('.k-in').click(function() {
    $(this).closest('.k-top').remove();
});

如果来自任何其他地方,你必须有一个id或其他属性/属性关联来过滤选择,因为@James Donnelly jQuery将会出现以下所有情况:

$('.k-in).closest('.k-top').remove();

答案 6 :(得分:-1)

使用以下

$('.k-in').parent().remove();

如果你有k-top这个范围的直接父母