-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
有一段代码:
var jTd = $("td:first");
jTd.text(jTd.find(":input").val()).addClass("readonly");结果居然报告:对象不支持“addClass”属性或方法
难道 text(param) 返回的不是 jQuery 对象?!
仔细想了下,想明白了,一般情况下是返回的 jQuery 对象,但有一种情况除外……
假设:jTd.find(":input").val() 得到的值是 undefined 呢?这时候 text(undefined) 和 text() 是一样的效果,返回的都是 innerText。所以,要排除 text() 的参数 undefined 的情况,可以这样
jTd.text($express || "")不过也有缺陷,比如 $express 是 0 或者 false 的时候,这里jTd就不能显示出来了。如果觉得要去判断 $express 太麻烦,那就只有一个办法:把 text() 放在最后调用,或者单独调用!比如:
var jTd = $("td:first");
jTd.addClass("readonly").text(jTd.find(":input").val());坑爹的 text(),还有类似的 html(),下次得小心着用啦!