我遇到了麻煩,jQuery不識別我的網頁上的元素,並拋出一個錯誤,說我試圖選擇的元素爲空。爲什麼jQuery不能識別我的頁面上的元素?
我們將我們的內容分爲以下包裝,這是由客戶提供:
http://www.ft.com/global/mm0802/ag/wrapper
的包裝中包含以下字符串:
<!-- ftplchol id="contentFixed" version="1.0" -->
我們與更換我們的內容,然後渲染頁面。
這是我們內容的樣本:(我有這個問題下面它被描述)
<script src="/Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$('.ActionControl a').live("click", function() {
$.get($(this).attr("href"), {}, function (result) {
// do stuff with result
});
}, "html");
return false;
});
});
</script>
<div class="ActionControl">
<span>Fund Directory</span>
<span>
<a href="/funddirectory/DirectoryResult">A</a>
</span>
<span>
<a href="/funddirectory/DirectoryResult/B">B</a>
</span>
<span>
<a href="/funddirectory/DirectoryResult/C">C</a>
</span>
</div>
當我跑我的包裝的範疇之外的東西,一切都很好。我的代碼按預期行事。但是,當我運行完整的頁面插入到包裝我們的內容,以下行引發錯誤:
$('.ActionControl a').live("click", function() {
說$('.ActionControl a')
爲空。具體來說:Microsoft JScript runtime error: 'null' is null or not an object
雖然沒有任何意義。 $('.ActionControl a')
不能和不應該爲空,因爲在文檔準備好的時候,<div class="ActionControl">
肯定存在於頁面上,並且它在我不使用包裝器時起作用。我可以用IE瀏覽器工具欄的FireBug &看到它。
即使我試圖得到類似$('a')
或$('div')
(其中有很多的頁),它仍然拋出了同樣的錯誤。我知道jQuery正在工作,因爲$(document).ready()
函數工作..
有沒有人有任何想法,爲什麼這不會工作?包裝中是否有東西阻止它看到我的控件或其他控件?
你可以修剪一下你的措辭嗎? – ChaosPandion 2010-07-12 16:59:35