从另一个功能获得价值

时间:2019-02-19 20:52:27

标签: javascript rest onclick

我有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错误。

1 个答案:

答案 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);
}