重构javascript';对于';环
我正在练习javascript。我创建了一个链接来显示隐藏段落。代码当前使用2个“for”循环。我是否应该为“for”循环创建一个函数,然后重新使用该函数重构javascript';对于';环,javascript,for-loop,refactoring,Javascript,For Loop,Refactoring,我正在练习javascript。我创建了一个链接来显示隐藏段落。代码当前使用2个“for”循环。我是否应该为“for”循环创建一个函数,然后重新使用该函数 var paragraphs = document.getElementsByTagName('p'), firstParagraph = paragraphs[0], link = document.createElement('a'); link.innerHTML = 'Show more'; link.setAttri
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)
var段落=document.getElementsByTagName('p'),
第一段=第[0]段,
link=document.createElement('a');
link.innerHTML='显示更多';
setAttribute('class','link');
link.setAttribute('href','#');
第一段.附加儿童(链接);
对于(var i=1;i,由于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)
var段落=document.getElementsByTagName('p'),
第一段=第[0]段,
link=document.createElement('a');
link.innerHTML='显示更多';
setAttribute('class','link');
link.setAttribute('href','#');
第一段.附加儿童(链接);
toggleHideAll();
函数切换隐藏(e){
e、 防止违约;
var段落=document.getElementsByTagName('p');
toggleHideAll();
}
函数toggleHideAll(){
对于(i=1;i由于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)
var段落=document.getElementsByTagName('p'),
第一段=第[0]段,
link=document.createElement('a');
link.innerHTML='显示更多';
setAttribute('class','link');
link.setAttribute('href','#');
第一段.附加儿童(链接);
toggleHideAll();
函数切换隐藏(e){
e、 防止违约;
var段落=document.getElementsByTagName('p');
toggleHideAll();
}
函数toggleHideAll(){
对于(i=1;iYes),实现两端的单个循环是很好的,正如@Solmon所说:
function toggleHideAll(){
for (var i = 1; i <= paragraphs.length-1; i++) {
paragraphs[i].classList.toggle('hide');
}
}
是的,用一个循环来实现两个目的是很好的,正如@Solmon所说:
function toggleHideAll(){
for (var i = 1; i <= paragraphs.length-1; i++) {
paragraphs[i].classList.toggle('hide');
}
}
在什么情况下值得,这是一个意见问题,特别是因为在这种情况下,它们做的事情略有不同。不是意见问题(我不认为)是您应该以可读的方式格式化和缩进代码。:-)这是一个意见的问题,在什么时候它变得值得,特别是因为在这种情况下,他们做的事情略有不同。不是意见的问题(我不认为)是你应该格式化和缩进你的代码可读:-)非常感谢解释和你的时间。非常感谢解释和你的时间。
function toggleHideAll() {
paragraphs.forEach(p => p.classList.toggle('hide'));
paragraphs[0].classList.remove('hide');
}