gpt4 book ai didi

javascript - 重构 javascript 'for' 循环

转载 作者:行者123 更新时间:2023-12-01 03:57:54 25 4
gpt4 key购买 nike

我正在练习我的 JavaScript。我创建了一个链接来显示隐藏段落。该代码当前使用 2 个“for”循环。我应该以某种方式为“for”循环创建一个函数,然后重新使用该函数吗?

var paragraphs = document.getElementsByTagName('p'),
firstParagraph = paragraphs[0],
link = document.createElement('a');
link.innerHTML = 'Show more';
link.setAttribute('class', 'link');
link.setAttribute('href', '#');
firstParagraph.appendChild(link);

for (var i = 1; i <= paragraphs.length - 1; i++) {
paragraphs[i].classList.add('hide')
}

function toggleHide(e) {
e.preventDefault;
var paragraphs = document.getElementsByTagName('p');
for (i = 1; i <= paragraphs.length - 1; i++) {
paragraphs[i].classList.toggle('hide');
}
}

link.addEventListener('click', toggleHide)

最佳答案

由于在初始化段落列表时,toggle('hide') 也会执行与 add('hide') 相同的操作,因此最好将重复的代码提取到单个函数中。

例如:

var paragraphs = document.getElementsByTagName('p'),
firstParagraph = paragraphs[0],
link = document.createElement('a');
link.innerHTML = 'Show more';
link.setAttribute('class' , 'link');
link.setAttribute('href' , '#');
firstParagraph.appendChild(link);
toggleHideAll();

function toggleHide( e ){
e.preventDefault;
var paragraphs = document.getElementsByTagName('p');
toggleHideAll();
}

function toggleHideAll(){
for( i = 1 ; i <= paragraphs.length-1 ; i++){
paragraphs[i].classList.toggle('hide');
}
}

link.addEventListener( 'click' , toggleHide)

关于javascript - 重构 javascript 'for' 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42480774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com