Javascript一个函数如何看待另一个函数变量?
下面是javascript代码,目的是模拟jQueryNextall函数。现在的问题是,当我使用函数作为参数时,它不能在_nextAll函数中看到aLists变量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) {
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不断迭代该元素的下一个同级,并将每个同级推送到一个数组中。