JS中的nextall方法是什么?假設(shè)我有如下HTML代碼:
那么在JS中我可以使用nextall方法來(lái)獲取到當(dāng)前選中項(xiàng)之后的所有兄弟元素,即:
這段代碼會(huì)輸出一個(gè)包含選中項(xiàng)之后所有兄弟元素的數(shù)組。在本例中,它們是
除此之外,nextall方法也可以用來(lái)獲取指定兄弟元素的前幾個(gè)兄弟元素。如果將nextall方法稍作改動(dòng),使得它包含一個(gè)參數(shù)來(lái)指定要獲取的元素?cái)?shù)量,如:
我可以使用如下代碼,僅獲取當(dāng)前選中項(xiàng)之后的兩個(gè)兄弟元素:
這段代碼會(huì)輸出一個(gè)包含選中項(xiàng)之后的兩個(gè)兄弟元素的數(shù)組。在本例中,它們是
除此之外,nextall方法也可以用來(lái)實(shí)現(xiàn)眾多元素的切換。假設(shè)我有如下HTML代碼:
那么在JS中,我可以使用如下代碼,為每個(gè)按鈕綁定切換事件:
在此例中,點(diǎn)擊第一個(gè)按鈕會(huì)切換其之后兩個(gè)元素,即
綜上所述,nextall方法是一個(gè)非常有用的JS方法,可以快速、方便地獲取到指定元素之后的所有或部分兄弟元素,并且可以用來(lái)實(shí)現(xiàn)眾多功能。
html <ul> <li>列表項(xiàng)1</li> <li>列表項(xiàng)2</li> <li>列表項(xiàng)3</li> <li class="active">列表項(xiàng)4</li> <li>列表項(xiàng)5</li> </ul>
那么在JS中我可以使用nextall方法來(lái)獲取到當(dāng)前選中項(xiàng)之后的所有兄弟元素,即:
javascript var activeItem = document.querySelector('.active'); var nextAll = nextall(activeItem); function nextall(element) { var siblings = []; var nextSibling = element.nextSibling; while(nextSibling) { if(nextSibling.nodeType === 1) { siblings.push(nextSibling); } nextSibling = nextSibling.nextSibling; } return siblings; }
這段代碼會(huì)輸出一個(gè)包含選中項(xiàng)之后所有兄弟元素的數(shù)組。在本例中,它們是
列表項(xiàng)5
。除此之外,nextall方法也可以用來(lái)獲取指定兄弟元素的前幾個(gè)兄弟元素。如果將nextall方法稍作改動(dòng),使得它包含一個(gè)參數(shù)來(lái)指定要獲取的元素?cái)?shù)量,如:
javascript function nextall(element, num) { var siblings = []; var nextSibling = element.nextSibling; while(nextSibling && siblings.length < num) { if(nextSibling.nodeType === 1) { siblings.push(nextSibling); } nextSibling = nextSibling.nextSibling; } return siblings; }
我可以使用如下代碼,僅獲取當(dāng)前選中項(xiàng)之后的兩個(gè)兄弟元素:
javascript var activeItem = document.querySelector('.active'); var nextTwo = nextall(activeItem, 2);
這段代碼會(huì)輸出一個(gè)包含選中項(xiàng)之后的兩個(gè)兄弟元素的數(shù)組。在本例中,它們是
列表項(xiàng)5
。除此之外,nextall方法也可以用來(lái)實(shí)現(xiàn)眾多元素的切換。假設(shè)我有如下HTML代碼:
html <button class="btn" data-id="1">按鈕 1</button> <button class="btn" data-id="2">按鈕 2</button> <button class="btn" data-id="3">按鈕 3</button>
那么在JS中,我可以使用如下代碼,為每個(gè)按鈕綁定切換事件:
javascript var buttons = document.querySelectorAll('.btn'); for(var i = 0; i < buttons.length; i++) { buttons[i].addEventListener('click', function() { var targetId = this.dataset.id; var targetElement = document.querySelector('#target-' + targetId); var siblings = nextall(targetElement, 2); for(var j = 0; j < siblings.length; j++) { siblings[j].classList.toggle('hidden'); } }); }
在此例中,點(diǎn)擊第一個(gè)按鈕會(huì)切換其之后兩個(gè)元素,即
和
,同時(shí)它們的類名會(huì)從'hidden'
切換至''
。這段代碼可以擴(kuò)展為切換其他任何元素。綜上所述,nextall方法是一個(gè)非常有用的JS方法,可以快速、方便地獲取到指定元素之后的所有或部分兄弟元素,并且可以用來(lái)實(shí)現(xiàn)眾多功能。