2012-09-05 39 views
3
if($("#target").html().trim().length>0){do sth} 

很是怪異,我得到的錯誤說遺漏的類型錯誤:無法讀取的不確定 財產「長度」,並在HTML我有從Jquery的那麼奇怪的錯誤

<div id="target"><table><tr><td>ABC</td></tr></table></div> 

而且奇怪的問題是,如果我做了console.info($("#target").html().trim().length),它會告訴我一些數字。

,我發現,以避免錯誤的唯一方法是最奇怪的是更改HTML內容

<div id="target">ABC</div> 

沒有HTML表格,就不要扔東西errow

+2

你記得把你的代碼放在'$(document).ready()'處理程序中嗎? – Alnitak

+1

因爲什麼時候是「trim()」一個有效的字符串重載函數?也許它是新的,但我只*知道使用「jQuery.trim(STRING);」所以 - 用「console.log」在鏈末尾檢查「trim()」的輸出,請 – TheHe

+0

是的,我把它們準備好了 – john

回答

1

嘗試使用innerHTML或innerText直接代替Jquery

+0

哦,是的,它的方式適用於HTML – john

4

改變你的$("#target").html().trim().length

$("#target").text().trim().length 

檢查THI小號jsfiddle,你得到的長度爲51,因爲它給<div>之間的html的長度標記

.html()

Get the HTML contents of the first element in the set of matched elements.

.text()

Get the combined text contents of each element in the set of matched elements

+0

它的工作原理,但有時我只想弄清楚HTML而不是文本 – john

+0

@john,你可以嘗試'InnerHtml'長度的html長度。 –

+0

@Furqan但問題被標記爲jquery :-) – Sibu