我正在尝试编写一段代码来删除其 <p>
中的所有 DIV。 child 包含数组中的值。
我的代码无法正常工作,你能帮我解决吗?
也许你有比我更好的方法。
$(document).ready(function () {
var values=['VALUE1','VALUE2'];
for(var i=0;i<values.length;i++) {
$("p:contains(values[i])").closest('.mainDiv').remove();
}
});
这是 HTML 框架(jQuery 代码只会在页面上留下 VALUE0 DIV):
<div class="clear mainDiv">
<div class="clear">
<div class="sidebar">
<p align="center" class="tgValue">
<a href="">
VALUE0
</a>
</p>
</div>
</div>
</div>
<div class="clear mainDiv">
<div class="clear">
<div class="sidebar">
<p align="center" class="tgValue">
<a href="">
VALUE1
</a>
</p>
</div>
</div>
</div>
<div class="clear mainDiv">
<div class="clear">
<div class="sidebar">
<p align="center" class="tgValue">
<a href="">
VALUE2
</a>
</p>
</div>
</div>
</div>
<div class="clear mainDiv">
<div class="clear">
<div class="sidebar">
<p align="center" class="tgValue">
<a href="">
VALUE1
</a>
</p>
</div>
</div>
</div>
最佳答案
您需要使用字符串连接将变量的值添加到字符串文字
$(".mainDiv p:contains(" + values[i] + ")").closest('.mainDiv').remove();
演示:Fiddle
<小时/>使用:contains将返回部分匹配,例如选择器将返回 Value10
:contains(Value1)
- Demo
如果您不希望发生这种情况,请使用类似的过滤器
jQuery(function ($) {
var values = ['VALUE1', 'VALUE2'];
for (var i = 0; i < values.length; i++) {
$(".mainDiv p").filter(function () {
return $.trim($(this).text()) == values[i]
}).closest('.mainDiv').remove();
}
});
演示:Fiddle
关于jquery - 使用数组[或更好的方法]从页面中删除多个 DIV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305989/