无法在jquery中找到元素
问题描述:
我收到一个错误,当我调用元素的方法时,说'对象预期'。即使页面上存在该元素,我也会收到此错误。无法在jquery中找到元素
$('#asdf').text();
我在pagemethod的Onsucceed方法中调用此方法。它背后的原因是什么?
答
也许你没有对Jquery的引用?
尝试$('#asdf')。length并检查它是否选择任何内容。 另一个可能的问题是,你尽量选择元素之前的DOM准备
$(function(){
$('#asdf').text();
});
时会发生DOM准备
答
可能是几件事情,在这种情况下,它可能无法找到$('#asdf')
,所以请确保您的ID与页面上的元素相同。
检查已导入的Jquery正确地将因为它可能无法识别$
最后,确保在页面加载完成后您的代码运行。
$(document).ready(function() {
//code
});
答
我想你会在页面加载完成之前这样做。
尝试
jQuery(function($){
alert($('#asdf').text());
});
答
具体什么是被期待的 '对象'?如果是$
那么这意味着您的网页上未包含jquery.js
,或者其路径不正确。
如果包括jQuery的,那么你可以测试是否使用页面上存在的元素:
if ($("#asdf").length > 0) {
alert("asdf esixts");
}
else {
alert("asdf DOES NOT exist");
}
最后,确保你把你的代码的文件准备处理程序中:
$(document).ready(function() {
// your code here
});
答
可能通过适当参考JQuery的文件来解决。您可能在一个子目录中并且需要更改路径。
或者你可能有一个类似的代码;
$("#form1").validate({
debug: true,
.....
如果你有,false改为true
答
我假设你在IE中得到这个错误。这可能发生在你有一个id为asdf的元素时,那么你在某个Ajax调用(或者替换它)后以某种方式删除了它。你可以尝试$(“[id = asdf]”)。text()并查看它是否失败。如果没有,当我是对的。 这是由于以下事实:(IMO)IE将ID中的所有元素保留在散列中,并且在元素被替换时不会替换散列中的指针。
尝试$('#asdf')。length并查看它是否选择了任何内容 – gdoron
您是否加载了jQuery? –
发布所有相关的代码和标记。 – Strelok