当由 id 标识的特定 DOM 元素发生更改时,我正在使用一些执行 .post() 函数的 JavaScript:
$.fn.subSelectWithAjax = function() {
var that = this;
this.change(function() {
$.post("/people/thisguy", {id: that.val()}, null, "script");
});
}
$(document).ready(function(){
$("#this_guy").subSelectWithAjax();
});
#this_guy
是表单中的一个选择元素。当它发生变化时,它会执行 .post 函数并将其定向到 url “/people/thisguy”。
我想添加一个 if 语句来有条件地执行一个 .post 函数,该函数由正在执行 .subSelectWithAjax() 函数的元素的 id 确定。我试过这样:
$.fn.subSelectWithAjax = function() {
var that = this;
if(this==document.getElementById('#this_guy')) {
this.change(function() {
$.post("/people/thisguy", {id: that.val()}, null, "script");
});
} else {
this.change(function() {
$.post("/people/anyotherguy", {id: that.val()}, null, "script");
});
}
}
$(document).ready(function(){
$("#this_guy").subSelectWithAjax();
$("#that_guy").subSelectWithAjax();
$("#the_other_guy").subSelectWithAjax();
});
我希望第一个 .post 函数在更改元素的 id 是 this_guy 时执行,即直接到 url“/people/thisguy”。但是,它总是执行 else 子句中指定的 .post 函数,我得出的结论是因为我没有将正确的参数传递给相等运算符。
此外,在 JavaScript 中,if 语句是否必须在语法上有效才能执行 else 子句?我也在尝试确定我所写的内容是否适用于其他检查,而不是我正在寻找的那个。