使用数组[或更好的方法]从页面中删除多个DIV

时间:2014-04-26 02:40:01

标签: jquery

我正在尝试编写代码以删除其<p>子项包含数组值的所有DIV。

我的代码没有用,你可以帮帮我吗? 也许你有比我更好的方法。

<小时/> 这是我试图做的事情:

$(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>

2 个答案:

答案 0 :(得分:3)

您需要使用字符串连接将变量的值添加到字符串文字

$(".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

答案 1 :(得分:2)

你错误地进入了jQuery语句。

替换你的代码

$("p:contains(values[i])").closest('.mainDiv').remove();

$("p:contains('"+values[i]+"')").closest('.mainDiv').remove();