我有27个按钮(AZ和全部),需要传递该值才能过滤REST API(即,如果单击“ A”按钮,则具有“姓氏”的过滤器列表以“ A”开头,依此类推。 / p>
以下是我当前的HTML标记:
<div class="container">
<div class="box-orange2"></div>
<div class="box-grey"></div>
<div class="box-orange"></div>
<div class="box-yellow"></div>
</div>
Javascript:
<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中使用变量var filterByValue;
var myFilter = function(value, object) {
object.innerHTML = value;
filterByValue = value;
};
console.log(filterByValue);
,则无法使用。如果像上面那样将其放置在外面,则会出现filterByValue
错误。
答案 0 :(得分:1)
myFilter函数在按钮单击时运行,但是console.log将在代码到达后立即运行。因此,程序一旦运行console.log,就会立即输出最初未定义的变量的值。从onclick函数中调用另一个函数,该函数会从变量中打印出值
console.log(typeof context.config.failTestOnErrorLog.excludeKeywords);
console.log(Array.isArray(context.config.failTestOnErrorLog.excludeKeywords));
var filterByValue;
var myFilter = function(value, object) {
object.innerHTML = value;
filterByValue = value;
a();
};
function a()
{
console.log(filterByValue);
}