如何在定义它的函数之外访问变量?

时间:2017-05-07 21:27:17

标签: javascript jquery

我似乎无法使用jQuery单击函数中定义的变量。我知道全局变量和局部变量之间的区别,但在函数外创建变量似乎没有帮助。

var $genre;
$('#search').click(function() {
    $genre = $(this).attr('value');
});
console.log($genre);

必须有一些我不想的简单解决方案。

3 个答案:

答案 0 :(得分:0)

JS中只有两个值范围:功能和全局

表示值在.click回调中,并且仅在单击后才存在。 Undefined实际上是JS中的一个类型,意味着变量存在但尚未分配值。

我的怀疑是你认为代码会同步执行,但只有当...点击时才会调用函数点击

答案 1 :(得分:0)

您正在分配'值'在点击事件中。因此,仅当您单击" #search"时才会分配值。所以console.log语句没有任何值。

相反,试试这个。

var $genre;
$('#search').click(function() {
    $genre = $(this).attr('value');
    console.log($genre);
});

答案 2 :(得分:0)

  • 代码实际上正是您想要处理的变量,但在函数中您没有将其记录到控制台。
  • 我注意到的一件事是你也在访问"值"使用$(this).attr属性('值')。如果您试图获取输入的值,这是我假设的原始意图Jquery has a built in function to get the value of an input.

我提到的所有这些更改的代码如下所示!

var $genre;

$('#search').click(function() {
    //sets the variable to the value of the input
    $genre = $(this).val();

    //prints the variable to the console everytime that the element is clicked
    console.log($genre);
});