var element;
function getElement(elem, functionToCall) {
if (elem.length === undefined) {
elem = [elem]
};
element = elem;
for (var i = 0; i < element.length; i++) {
functionToCall
}
};
function changeElementStyle() {
element[i].style.color = "red"
}
getElement(document.querySelectorAll("p"), changeElementStyle);
&#13;
这是我的代码,但它不起作用。我想要的是,能够在函数(changeElementStyle
)的参数中设置函数(getElement
),其中(changeElementStyle
)在函数之外({ {1}})。我需要在getElement
之外声明外部函数的原因是getElement()
每次调用时都会更改其他样式。
我怎么能这样做?
答案 0 :(得分:0)
声明没有该var声明的函数w
function w(i) {
a[i].style.color = "red"
}
传递函数如下:
x(document.querySelectorAll("p"), w);
要调用函数w
,您需要执行该函数,因为您可以看到该函数现在收到一个索引,以便能够获取特定元素p
:
for (var i = 0; i < a.length; i++) {
z(i); // Here
}
var a;
function x(y, z) {
if (y.length === undefined) {
y = [y]
};
a = y;
for (var i = 0; i < a.length; i++) {
z(i);
}
};
function w(i) {
a[i].style.color = "red"
}
x(document.querySelectorAll("p"), w);
&#13;
<p>Hello</p>
<p>World!</p>
&#13;
答案 1 :(得分:0)
function myFunc(a){
a();
}
并记住关闭,您不需要定义名称。 你可以定义一个闭包并像这样传递它
f = function(){
console.log('closure');
}
myFunc(f)