当子 div w.r.to 父 div 多个时,请将其删除



我有两个动态创建的div,如下所示:

<div id="starredDiv">
<div class="list-group" id="starredList">
<div class="list-group-item" style="border-left: none; border-right: none;">
<img class="a-img" src="./img/desktop.png" height="25" width="25">
<a class="a-file">message.txt</a>
<button class="btn glyphicon glyphicon-ok btn-sm btn-current btn-default" style="float: right;"></button>
<button class="btn glyphicon glyphicon-star btn-sm btn-star btn-primary" style="float: right;"></button>
</div>
<div class="list-group-item" style="border-left: none; border-right: none;">
<img class="a-img" src="./img/desktop.png" height="25" width="25">
<a class="a-file">testcase.txt</a>
<button class="btn glyphicon glyphicon-ok btn-sm btn-current btn-default" style="float: right;"></button>
<button class="btn glyphicon glyphicon-star btn-sm btn-star btn-primary" style="float: right;"></button>
</div>
</div>
</div>
<div id="recentDiv">
<div class="list-group" id="recentList">
<div class="list-group-item" style="border-left: none; border-right: none;">
<img class="a-img" src="./img/desktop.png" height="25" width="25">
<a class="a-file">message.txt</a>
<button class="btn glyphicon glyphicon-ok btn-sm btn-current btn-default" style="float: right;"></button>
<button class="btn glyphicon glyphicon-star btn-sm btn-star btn-primary" style="float: right;"></button>
</div>
<div class="list-group-item" style="border-left: none; border-right: none;">
<img class="a-img" src="./img/desktop.png" height="25" width="25">
<a class="a-file">testcase.txt</a>
<button class="btn glyphicon glyphicon-ok btn-sm btn-current btn-default" style="float: right;"></button>
<button class="btn glyphicon glyphicon-star btn-sm btn-star btn-primary" style="float: right;"></button>
</div>
</div>
</div>

我想删除用户单击最近列表的 glyphicon-star 按钮时出现在星标列表中的列表组项 w.r.to<a>。为此,我写了一些这样的东西:

var file = $(this).closest('.list-group-item').children('.a-file').text();
if($(#starredList).children('.list-group-item').children('.a-file').text() == file){
$(#starredList).children('.list-group-item').remove();
}

当星标列表与一个列表组项目存在但不在多个列表组项目上时,这有效吗?

.list-group-item是多个,所以你需要循环它,

$('#starredList').children('.list-group-item').each(function(){
if($(this).children('.a-file').text() == file){
$(this).remove();
}
});

这应该可以做到。

var file = $(this).closest('.list-group-item').children('.a-file').text();
$('.list-group-item').not($(this).closest('.list-group-item')).each(function(){
if($(this).find('.a-file:contains('+file+')').length > 0){
$(this).remove();
}
});

最新更新