[英]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.