首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重构这段代码的最佳方式是什么?

重构这段代码的最佳方式是什么?
EN

Stack Overflow用户
提问于 2019-07-16 05:07:09
回答 2查看 45关注 0票数 1

编写以下代码的更有效的方法是什么:

代码语言:javascript
复制
<button onclick="changeRed()">red</button>
<button onclick="changeGray()">gray</button>
<button onclick="changeBlack()">black</button>    

myLoader = document.getElementsByClassName('preloader');
    function changeGray() {
        for (i = 0; i < myLoader.length; i++) {         
            myLoader[i].setAttribute("id", "gray");
        } 
    }

    function changeBlack() {
        for (i = 0; i < myLoader.length; i++) {
            myLoader[i].setAttribute("id", "black");
        }
    }

    function changeRed() {
        for (i = 0; i < myLoader.length; i++) {
            myLoader[i].setAttribute("id", "red");
        }
    }

我使用for循环作为在单个页面上使用多个ID的变通方法(这是用于特定的模型-不会在生产中使用)

我正在寻找一种不使用多个change___()函数来编写代码的方法。

EN

回答 2

Stack Overflow用户

发布于 2019-07-16 05:12:16

您可以将颜色作为函数的参数:

代码语言:javascript
复制
    function changeColor(color) {
        for (i = 0; i < myLoader.length; i++) {
            myLoader[i].setAttribute("id", color);
        }
    }
票数 2
EN

Stack Overflow用户

发布于 2019-07-16 05:12:47

重构,以便您接受函数的颜色值,并只保留一个函数来设置值

代码语言:javascript
复制
<button onclick="setColor('red')">red</button>
<button onclick="setColor('gray')">gray</button>
<button onclick="setColor('black')">black</button>    


myLoader = document.getElementsByClassName('preloader');
    function setColor(color) {
        for (i = 0; i < myLoader.length; i++) {         
            myLoader[i].setAttribute("id", color);
            myLoader[i].setAttribute("style", 'color:'+color);
        } 
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57047197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档