我的jquery脚本有问题。我有这样的代码,我的脚本只删除输入,而不是标签。如何同时删除标签?
<div class="input_fields_container">
@foreach($data->videoTags as $tag)
<div class="el">
<div class="form-group">
<label class="col-lg-2 control-label bold">@lang('main.position')</label>
<div class="col-lg-6 input-group">
<input type="text" placeholder="" name="tag[]" value="{{$tag->tag}}" class="form-control">
<div class="input-group-btn inup-group-addon"><a href="#" class="remove_field" style="margin-left:10px;">@lang('main.delete')</a>
</div>
</div>
</div>
</div>
@endforeach
</div>
<script type="text/javascript">
$(document).ready(function() {
$('.input_fields_container').on("click", ".remove_field", function(e) { //user click on remove text links
e.preventDefault();
$(this).parents().eq(1).remove();
x--;
})
});
</script>
发布于 2018-03-01 01:11:59
您还可以使用closest()
将包含label
的父div作为目标:
$(this).closest('.form-group').remove();
//OR
$(this).closest('.form-group').html('');
注意:您可以跳转到您只需更改选择器的el
父对象。
发布于 2018-03-02 07:02:00
这里选择器eq的用法不是很明智。您可以查看文档,了解如何有效地使用它:
https://api.jquery.com/eq-selector/
您可以阅读:
它们根据元素在此匹配集中的顺序缩小集合的范围。例如,如果首先使用类选择器(.myclass)选择元素,并返回四个元素,则为这些选择器提供从0到3的索引。
通过执行$(this).parent().eq(1).remove()
,您将只删除与$(this).parent()
选择匹配的元素数组中的一个元素。您可以检查数组中的内容,以尝试了解要删除的内容。
我建议您可以使用foreach在<div class="el">
上创建一个类似于"data-input=y“的属性,其中y是您递增的变量。这样,您就可以很快知道要删除哪些输入,并且您的选择不依赖于DOM的结构。
https://stackoverflow.com/questions/49035028
复制相似问题