簡體   English   中英

孩子的孩子Javascript DOM

[英]Children of children Javascript DOM

假設我有一個div,其中有兩個子div,它們充當未定義數量的導航按鈕的列。

<div id='controls'>
<div id='column1'><a id='button1' href=#></a></div>
<div id='column2'><a id='button2' href=#></a></div>
</div>

我目前有這樣

var column1 = document.getElementById('column1').children;
var column2 = document.getElementById('column2').children;
var button1 = document.getElementById('button1');

button1.onclick = function() {
    column1.className = column1.className.replace(new RegExp('\b' + active + '\b'),'');
    column2.className = column2.className.replace(new RegExp('\b' + active + '\b'),'');
    this.className += ' active';
};

由於我對兩者都做相同的事情,因此有一種方法可以將其組合為以下內容:

var controls = document.getElementById('controls').children.children;

要么

var controls = document.getElementById('controls').children;
var controls = controls.children;

使用document.querySelectorAll()

var controls = document.querySelectorAll('#controls > div');
console.log(controls)

支持IE8 +


這里的控件是一個數組,因此您需要對其進行迭代以更改其屬性

button1.onclick = function () {
    var controls = document.querySelectorAll('#controls > div');
    for (var i = 0; i < controls.length; i++) {
        controls[i].className = controls[i].className.replace(new RegExp('\b' + active + '\b'), '');
    }
    this.className += ' active';
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM