簡體   English   中英

jQuery對象html()不起作用……但是innerHtml起作用

[英]jQuery object html() doesn't work … but innerHtml does

我有一個對象應該是有效的jQuery對象。 當我查看FireBug中的變量時,它包含了我期望的所有jQuery函數(克隆,刪除,removeat等)。 但是,我不認為html()是有效函數,並且在執行此操作時:

stringValue = myjQueryObject.html();

它確實失敗,說html()不是函數。 但是,如果我做這樣的事情:

stringValue = myjQueryObject[0].innerHTML;

它將正確地傳回對象,減去父div和文本(我希望如此,因為它只是獲取innerHtml )。 我在這里想念什么?

如下所述,這是一個外部庫,正在生成myjQueryObject,該庫先前已返回有效的jQuery對象,並且已被錯誤地更新。 為了后代的緣故,我更新了單元測試以驗證外部庫是否返回了正確的jQuery對象,請確保它不會返回null或未定義:

myjQueryObject.jquery

謝謝大家! 今天早上我的代碼突然中斷時,我有點害怕。

確定這是一個jquery對象嗎? 再次將其包裝在$().html()應該存在。

它是[0].innerHTML.get(0).innerHTML ,因為innerHTML是屬性而不是方法。

您應該通過執行alert( jQuery == $)來確保jquery存在,並且可以檢查.jquery屬性。

要么正在修改jQuery對象原型,要么已加載了其他庫。

以您的對象為例,測試jQuery版本,如下所示:

alert( myjQueryObject.jquery ); // should give the jQuery version number

編輯:

此外,您聲明有一個removeAt方法。 jQuery沒有其中之一,除非您的意思是removeAttr()

奇怪 嘗試$(myjQueryObject).html(); 如果可行,則該對象實際上不是jQuery節點。

如果您仍然無法弄清楚該對象為何丟失了html()方法,請發布創建該對象的代碼。 然后,我們也許可以提供幫助。

您如何設置myjQueryObject?

<div id='myElement'></div>

//Good Javascript, Incorrect jQuery
myjQueryObject = document.getElementById('myElement');
myjQueryObject.innerHTML = '<b>My HTML Here</b>';

//Correct jQuery
myjQueryObject = $('#myElement');
myjQueryObject.html('<b>My HTML Here</b>');

//Compact Version of Correct jQuery
$('#myElement').html('<b>My HTML Here</b>');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM