Skip to content

jQuery 那坑爹的 text() #18

Open
@jamesfancy

Description

@jamesfancy

有一段代码:

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 || "")

不过也有缺陷,比如 $express0 或者 false 的时候,这里jTd就不能显示出来了。如果觉得要去判断 $express 太麻烦,那就只有一个办法:把 text() 放在最后调用,或者单独调用!比如:

var jTd = $("td:first");
jTd.addClass("readonly").text(jTd.find(":input").val());

坑爹的 text(),还有类似的 html(),下次得小心着用啦!

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions