Javascript 只有一个函数,而不是许多看起来相同的函数?

Javascript 只有一个函数,而不是许多看起来相同的函数?,javascript,function,css,shortcut,Javascript,Function,Css,Shortcut,你好!这是我的问题,我正在使用两种JS短函数(每个函数5行代码),但我必须制作,比方说,每种大约10行。这将是总共100行代码,这是非常长的。。。所以我想知道是否有一种简单且非常短的方法来实现这一点。我对javascript知之甚少,我喜欢大致理解我写的东西。(如果可能的话,避免使用JQ,因为我一个字都不懂!) 以下是功能: function typedepolice() { var nodes = document.getElementById('stripid').child

你好!这是我的问题,我正在使用两种JS短函数(每个函数5行代码),但我必须制作,比方说,每种大约10行。这将是总共100行代码,这是非常长的。。。所以我想知道是否有一种简单且非常短的方法来实现这一点。我对javascript知之甚少,我喜欢大致理解我写的东西。(如果可能的话,避免使用JQ,因为我一个字都不懂!) 以下是功能:

    function typedepolice() {
    var nodes = document.getElementById('stripid').childNodes;
    var nompolice = document.Selections.police.options[document.Selections.police.selectedIndex].value;
    for(var i=0; i<nodes.length; i++) {
         if (nodes[i].nodeName.toLowerCase() == 'div') {
        nodes[i].style.fontFamily = document.Selections.police.options[document.Selections.police.selectedIndex].value;
         }
    }
}
函数类型deplice(){
var nodes=document.getElementById('stripid').childNodes;
var nompolice=document.Selections.police.options[document.Selections.police.selectedIndex].value;

对于(var i=0;i您可以创建一个函数来设置
stripid
子节点

function setNodeStyle(value, style) {
    var nodes = document.getElementById('stripid').childNodes;
    for (var i=0; i<nodes.length; i++) {
        if (nodes[i].nodeName.toLowerCase() == 'div') {
            nodes[i].style[style] = value;
        }
    }
}
这已经帮你省了不少钱

您可以通过设置包含要设置的值的属性来进一步改进此功能。要开始:

<input class="color3 changer" value="FFFFFF" size="5" data-style="background">

Array.prototype.forEach.call(document.querySelector(".changer"), function (el) {
    el.addEventListener("change", function () {
        setNodeStyles(this.value, this.dataset.style);
    });
});

Array.prototype.forEach.call(document.querySelector(“.changer”),函数(el){
el.addEventListener(“更改”,函数(){
setNodeStyles(this.value、this.dataset.style);
});
});

Thanx,我将使用你的第一种方式。这肯定会让我节省时间和线路。也许有一天我会回来看看是否可以处理你的第二种方式。Thanx再次感谢你在这里帮助人们!我再次感谢!JSColor只给出颜色的十六进制值,而不是“#”符号。不幸的是,我无法找到在你的sc中添加它的位置和方式你能告诉我吗?
function colbandeau() {
    setNodeStyle(document.getElementById("colorFmsg").value, "background");
}
<input class="color3 changer" value="FFFFFF" size="5" data-style="background">

Array.prototype.forEach.call(document.querySelector(".changer"), function (el) {
    el.addEventListener("change", function () {
        setNodeStyles(this.value, this.dataset.style);
    });
});