Javascript - 使用getElementsByClassName删除一个元素

时间:2017-03-05 12:22:12

标签: javascript

我对JavaScript不太熟悉,所以我被困住了。 我需要从页面中删除第一类元素。

我发现这个脚本删除了所有的类元素,但我只需删除第一个。

var collection = window.content.document.getElementsByClassName("Links");

Array.prototype.forEach.call(collection, function(node) {
    node.parentNode.removeChild(node);
});

所以尝试了这个没有做到魔法的技巧

var collection = window.content.document.getElementsByClassName("Links")[0];

也尝试了但没有结果

var collection = window.content.document.getElementsByClassName("Links");
var requiredElement = collection[0];
Array.prototype.forEach.call(requiredElement, function(node) {
    node.parentNode.removeChild(node);
});

所以可能应该有这条​​线。

node.parentNode.removeChild(node);

6 个答案:

答案 0 :(得分:1)

forEach回调函数中,node只是集合中的每个元素。但是,由于您现在只有一个元素而不是元素集合,因此您只需对该元素执行该操作:

var collection = window.content.document.getElementsByClassName("Links");
var requiredElement = collection[0];
requiredElement.parentNode.removeChild(requiredElement);

答案 1 :(得分:1)

services
document.querySelector(".Links").remove();

并且<div class="Links">1</div> <div class="Links">2</div>返回第一个匹配(如果存在),而querySelector只会删除第一个元素。

答案 2 :(得分:1)

它不起作用,因为每个工作在数组/数组结构上。单个元素不是数组结构。 你可以这样做:

var collection = window.content.document.getElementsByClassName("Links");
var node = collection[0];
node.parentNode.removeChild(node);

答案 3 :(得分:0)

@Service
public class Stack<E> {

    int MAX_SIZE = 15;

    E[] elements;



    @SuppressWarnings("unchecked")
    Stack(Class<E> clazz) {
        elements = (E[]) Array.newInstance(clazz, MAX_SIZE);
    }

    volatile int i;

    public void push(E e) throws InterruptedException {
        while (i > MAX_SIZE) {
            Thread.currentThread().wait();
        }
        elements[i++] = e;
        Thread.currentThread().notifyAll();
    }

    public E pop() throws InterruptedException {
        while (i < 0) {
            Thread.currentThread().wait();
        }
        Thread.currentThread().notifyAll();
        return elements[i--];
    }

}
var elems = document.getElementsByClassName('box'), //catch all desired elements
    parent = document.getElementById('parent'); //catch the parent element

    parent.removeChild(elems[0]); //remove the first element from the parent
.box {
  height: 100px;
  width: 100px;
  background: blue;
  margin: 5px;
}

答案 4 :(得分:0)

如果需要删除第一个链接&#39;整页中的class元素

       if (document.getElementsByClassName('links').length > 0) {
        document.getElementsByClassName('links')[0].remove();
       }       

答案 5 :(得分:-1)

&#13;
&#13;
$(document).ready(function(){
  remove_first_element("hello");
});
function remove_first_element(class_name)
{
     var i=0;
     $("."+class_name).each(function(){
        if(i==0)
        {
           $(this).remove();
           i++;
         }
     });
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hello">hello 1</div>
<div class="hello">hello 2</div>
&#13;
&#13;
&#13;