2011-11-29 80 views
0

我收到一个错误,当我调用元素的方法时,说'对象预期'。即使页面上存在该元素,我也会收到此错误。无法在jquery中找到元素

$('#asdf').text(); 

我在pagemethod的Onsucceed方法中调用此方法。它背后的原因是什么?

+0

尝试$('#asdf')。length并查看它是否选择了任何内容 – gdoron

+0

您是否加载了jQuery? –

+0

发布所有相关的代码和标记。 – Strelok

回答

0

也许你没有对Jquery的引用?
尝试$('#asdf')。length并检查它是否选择任何内容。 另一个可能的问题是,你尽量选择元素之前的DOM准备

$(function(){ 
    $('#asdf').text(); 
}); 

时会发生DOM准备

0

可能是几件事情,在这种情况下,它可能无法找到$('#asdf'),所以请确保您的ID与页面上的元素相同。

检查已导入的Jquery正确地将因为它可能无法识别$

最后,确保在页面加载完成后您的代码运行。

$(document).ready(function() { 
    //code 
}); 
0

我想你会在页面加载完成之前这样做。

尝试

jQuery(function($){ 
    alert($('#asdf').text()); 
    }); 
0

具体什么是被期待的 '对象'?如果是$那么这意味着您的网页上未包含jquery.js,或者其路径不正确。

如果包括jQuery的,那么你可以测试是否使用页面上存在的元素:

if ($("#asdf").length > 0) { 
    alert("asdf esixts"); 
} 
else { 
    alert("asdf DOES NOT exist"); 
} 

最后,确保你把你的代码的文件准备处理程序中:

$(document).ready(function() { 
    // your code here 
}); 
0

可能通过适当参考JQuery的文件来解决。您可能在一个子目录中并且需要更改路径。

或者你可能有一个类似的代码;

$("#form1").validate({ 
     debug: true, 
     ..... 

如果你有,false改为true

0

我假设你在IE中得到这个错误。这可能发生在你有一个id为asdf的元素时,那么你在某个Ajax调用(或者替换它)后以某种方式删除了它。你可以尝试$(“[id = asdf]”)。text()并查看它是否失败。如果没有,当我是对的。 这是由于以下事实:(IMO)IE将ID中的所有元素保留在散列中,并且在元素被替换时不会替换散列中的指针。