2012-09-05 37 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