Javascript一个函数如何看待另一个函数变量?

Javascript一个函数如何看待另一个函数变量?,javascript,Javascript,下面是javascript代码,目的是模拟jQueryNextall函数。现在的问题是,当我使用函数作为参数时,它不能在_nextAll函数中看到aLists变量 function _nextAll(func) { var aLists = document.getElementsByTagName("*"); var i = 0; var temp = []; while (i < aLists.length) { if (func) {

下面是javascript代码,目的是模拟jQueryNextall函数。现在的问题是,当我使用函数作为参数时,它不能在_nextAll函数中看到aLists变量

function _nextAll(func) {
    var aLists = document.getElementsByTagName("*");
    var i = 0;
    var temp = [];
    while (i < aLists.length) {
        if (func) {     //if aLists[i].id = "one" replace func, this work
            var j = i;
            while (j < aLists.length) {
                temp.push(aLists[j + 1]);
                j++;
            }
        }
        i++;
    }
    return temp;
}

var temp = _nextAll(function(){
    if (aLists[i].id = "one"){     //aLists[i] cannot be seen in anonymous function
        return true;
    }
});

for (i = 0; i < temp.length; i++) {
    temp[i].style.color = "orange";
}
您应该将选择器传递给_nextAll,让函数选择第一个元素或与选择器匹配的每个元素,然后迭代其后的每个元素:

函数_nextAllsel{ 设el=document.querySelectorsel; 常量元素=[]; 而el=el.nextElementSibling{ 元素。普希尔; } 返回元素; } 下一个“一”的常数{ el.style.color=橙色; } A. B C D
e您可以选择使两个函数看到相同的变量 1-您可以在两个函数之外定义变量,也可以从两个函数中访问相同的变量


2-将您想要共享的所有变量传递给函数参数

感谢这项工作,您是否对代码进行了一些解释,特别是while循环的平均值。它选择与您传递的querySelector选择器匹配的元素。然后,它使用nextElementSibling不断迭代该元素的下一个同级,并将每个同级推送到一个数组中。