我似乎无法使用jQuery单击函数中定义的变量。我知道全局变量和局部变量之间的区别,但在函数外创建变量似乎没有帮助。
var $genre;
$('#search').click(function() {
$genre = $(this).attr('value');
});
console.log($genre);
必须有一些我不想的简单解决方案。
答案 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)
我提到的所有这些更改的代码如下所示!
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);
});