三个简单的jQuery步骤不起作用 - 设置变量,打印变量,比较变量

时间:2012-11-12 13:27:02

标签: javascript jquery variables

定义变量:

// Define Autocomplete Location Variable
var ac_location;

设置变量:

// Set Autocomplete Location Variable Equal to input id "loc"
$("#loc").val(ac_location);

打印变量:

// Print Autocomplete Variable
alert(ac_location);

比较变量:

// Compare "#loc" input with ac_location variable
if (ac_location.val() != $("#loc")) {
// Print Autocomplete Variable
alert(ac_location);
} else {
alert("No match");
}

我曾尝试使用来自jquery帮助和谷歌的信息来执行此操作。这是完整的代码:

http://jsfiddle.net/NY3nG/2/

我的步骤有什么问题,因为控制台说我的val是未定义的,并且它不会在警告框中打印出varialbe。非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

// Set Autocomplete Location Variable Equal to input id "loc"
$("#loc").val(ac_location);

只需将元素#loc的值设置为ac_location,反之亦然。做

ac_location = $("#loc").val();

并正确编写if,您的jquery对象为#loc而非ac_location

if ($("#loc").val() != ac_location)

以及在alert("No match");语句 匹配 后,if进行比较。

答案 1 :(得分:1)

如果ac_location值未定义,则val函数不会设置其值,因为undefined被视为好像你没有给它任何输入变量 - > jQuery认为它是一个getter call

答案 2 :(得分:1)

我正在纠正你的代码:

定义变量:

// Define Autocomplete Location Variable
// This is not a jquery object, just an ordinary js variable.
var ac_location;

设置变量:

// Set Autocomplete Location Variable Equal to input id "loc"
// You want to take the value of #loc to ac_location
ac_location = $("#loc").val();

打印变量:

// Print Autocomplete Variable
alert(ac_location);

比较变量:

// Compare "#loc" input with ac_location variable
// ac_location is a string, compare it with value of #loc field:
if (ac_location != $("#loc").val()) {
    // Print Autocomplete Variable
    alert(ac_location);
} else {
    alert("No match");
}