我有这样的代码:
<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();
答案 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();
}