谁能告诉我为什么下面的代码中$mytextarea的范围没有扩展到getAnswerToo()函数?
getAnswer() 之所以有效,是因为我明确选择了要更新的元素。但是,尝试使用全局"处理程序"变量不起作用。
我假设变量范围的这个问题与它包含 jQuery 对象的事实特别相关。另一个变量 myurl 工作正常。
任何帮助非常感谢!
var myurl = "php/getAnswer.php";
var $mytextarea = null; // a handler for the textarea element
$mytextarea = $('textarea#mytextarea');
getAnswerToo();
function getAnswer(){ // works
var request = $.ajax({
url: myurl,
type: "POST",
data: {question: questionId, user: userId},
dataType: "html",
success: function(data) {
$('textarea#mytextarea').val(unescape(data));
}
});
}
function getAnswerToo(){ // doesn't work
var request = $.ajax({
url: myurl,
type: "POST",
data: {question: questionId, user: userId},
dataType: "html",
success: function(data) {
$mytextarea.val(unescape(data));
}
});
}
这放在哪里?
$mytextarea = $('textarea#mytextarea');
选择器在初始化 DOM 时工作。这应该有效:
$(function() {
$mytextarea = $('textarea#mytextarea');
getAnswerToo();
});
$('textarea#mytextarea')
返回空数组,因为 DOM 尚未初始化。用 in 代码块包装整个代码,同时将在 DOM 准备就绪后调用。