Javascript 从另一个函数获取值
我有27个按钮(A-Z和所有按钮),需要传递值以过滤REST API(即,如果单击“A”按钮,则带有姓氏的过滤器列表以“A”开头,以此类推) 以下是我当前的HTML标记:Javascript 从另一个函数获取值,javascript,rest,onclick,Javascript,Rest,Onclick,我有27个按钮(A-Z和所有按钮),需要传递值以过滤REST API(即,如果单击“A”按钮,则带有姓氏的过滤器列表以“A”开头,以此类推) 以下是我当前的HTML标记: <div id="btnPDContainer"> <button class="btnPD active" type="button" onclick="myFilter('All', this)"><i class="fas fa-users"></i></button
<div id="btnPDContainer">
<button class="btnPD active" type="button" onclick="myFilter('All', this)"><i class="fas fa-users"></i></button>
<button class="btnPD" type="button" onclick="myFilter('A', this)">A</button>
<button class="btnPD" type="button" onclick="myFilter('B', this)"">B</button>
<button class="btnPD" type="button" onclick="myFilter('C', this)"">C</button>
<button class="btnPD" type="button" onclick="myFilter('D', this)"">D</button>
<button class="btnPD" type="button" onclick="myFilter('E', this)"">E</button>
</div>
如果我在函数中插入控制台日志,它可以工作,但是如果我在REST API中使用变量
filterByValue
,它就不工作。如果我将它放在外部,就像上面一样,它会给出未定义的错误。单击按钮后myFilter函数运行,但是console.log将在代码到达它时立即运行。因此,只要t程序run console.log打印最初未定义的变量值。从onclick函数调用另一个函数,该函数打印变量值
var-filterByValue;
var myFilter=函数(值,对象){
object.innerHTML=值;
filterByValue=值;
a();
};
函数a()
{
console.log(filterByValue);
}
A.
B
C
D
E
好好想想……conse.log行在函数运行之前运行。之后的代码不会等待函数被调用……控制台行需要位于函数内部……这我不知道。但是@ellipsis对其进行了精彩的解释。感谢您提供了非常有帮助的注释。我现在理解了它的工作原理。
var filterByValue;
var myFilter = function(value, object) {
object.innerHTML = value;
filterByValue = value;
};
console.log(filterByValue);