jQuery - 删除所有子类的祖父类

时间:2015-06-07 16:19:48

标签: jquery

我有这样的代码:

<div class="container">
  <div class="row">
    <div class="col-md-12">
      <label> Text </label>                                       
      <input type="text" class="required" name="email" id="email">
    </div>
  </div>
  <div class="row">
    <div class="col-md-12">
      <label> Text 2</label>                                       
      <input type="text" class="required" name="something else" id="something else">
    </div>
  </div>
</div>

问题是: 如果孙子有唯一的ID或名称,如何删除里面所有子类的“行”? 在我的jQuery“更改”事件中,我有一个我需要删除的行的孙子的唯一“名称”,所以我只需要找到“行”女巫包含唯一的“名称”。 例如,我的jQuery事件说我需要删除的“名称”是“电子邮件”。因此,输出应如下所示:

 <div class="container">
   <div class="row">
     <div class="col-md-12">
       <label> Text 2</label>                                       
       <input type="text" class="required" name="something else" id="something else">
     </div>
   </div>
 </div>

我尝试过这样的事情,但没有任何反应:

var element = $('.container').children(".row.col-md-12.input[name=this.name]");
    if( element.text() === $this.text())
            element.parent().parent().remove();

2 个答案:

答案 0 :(得分:1)

首先,您需要找到Input的节点。你可以用这两种方法做到这一点,找到最好的方法。

var element = $('.container').find('input[name=email]');

或者

var element = $('input[name=email');

使用动态表达式替换电子邮件,但请确保您正确地将输入重点放在

当你获得元素时,你可以通过

进入他的父母
var parentElement = element.closest('.row');

然后使用parentElement.remove();

将其删除

根据jQuery文档:

.closest():对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先来获取与选择器匹配的第一个元素。

答案 1 :(得分:0)

您需要更改:

var element = $('.container').children(".row.col-md-12.input[name=this.name]");

要:

var element = $('.container').find(".row .col-md-12 input[name='"+ this.name +"']");

假设this.name是一个具有正确值的变量。

修改

看看这个例子,也许你做错了。输入没有文本,但没有值,因此以下代码显示了一个良好的开端:

var name = 'email';
var value = 'value';

var element = $('.container').find(".row .col-md-12 input[name='"+ name +"']");
if(element.val() === value){
    element.parent().parent().remove();
}

DEMO:https://jsfiddle.net/lmgonzalves/70yksx6y/1/