【问题标题】:Remove DIV tag using Javascript or Jquery使用 Javascript 或 Jquery 删除 DIV 标记
【发布时间】:2016-10-12 13:47:55
【问题描述】:

如何删除具有特定值的 DIV?

<div value="0" class="task_row"></div>

我想删除上面的值为 0 的 div。

【问题讨论】:

  • 您使用的是 javascript 库吗? jQuery 会是一个可以接受的答案吗?如果是这样,你可以这样做,如果 jQuery: $('[value="0"]').remove();
  • 值不是 div 标签的有效属性。

标签: javascript jquery html


【解决方案1】:

正如 Ben Rowe 在 cmets 中指出的,value 不是 div 标签的有效属性。 jQuery 解决方案和使用getElementsByTagName() 的解决方案都必须遍历列表,这对性能不利。我认为创建id 属性是一个更好的选择:

<div id="task_row_0" class="task_row"></div>

然后你可以这样做:

var div = document.getElementById("task_row_" + taskId);
div.parentNode.removeChild(div);

【讨论】:

  • 让我们现实一点。 jQuery 做这样简单的事情是零需求。
  • 让我们在这里更加真实。很多人都在使用 jQuery,所以如果他们已经在使用它,他们为什么不使用简单的一行代码。 [+1 这个答案,因为我现在碰巧没有使用 jQuery]
  • jQuery在多个标签页打开时会吃电脑资源并挂起浏览器,所以请不要使用它!
【解决方案2】:

这是jquery代码)):

$('div').each(function(){
  if($(this).attr('value') == '0'){
    $(this).remove();
  }
});

【讨论】:

    【解决方案3】:
    var divs = document.getElementsByTagName('div');
    for(var i = divs.length; i; i -= 1) {
        if (divs[i].getAttribute('value') == 0) {
            divs[i].parentNode.removeChild(divs[i]);
        }
    }
    

    【讨论】:

    • 我使用了你的 sn-p 代码,但它有错误。 i 的初始值和结束条件无效
    【解决方案4】:

    编辑:没关系 - 扎苏兰打败了我。 :P

    使用 jQuery -

    $('div').each(function(){
        if($(this).attr('value') == '0') {
            $(this).hide();
            }
        });
    

    【讨论】:

      【解决方案5】:

      jQuery/JavaScript 的替代品,您可以仅通过 CSS 实现它 -

      JSFIDDLE

      div[value="0"] {
          display: none;
      }
      

      或者通过 jQuery 使用属性选择器:

      JSFIDDLE

      $("div[value='0']").hide(); /*.remove() as per your requirement*/
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-07
        相关资源
        最近更新 更多