使用jQuery获取元素时,值未定义

Mik*_*yev 0 javascript jquery

下面是我用jQuery获取我的input元素的代码:

var txt = $(tableRow).find('input:text');
if (txt.value == null) {
  //TO DO code
}
Run Code Online (Sandbox Code Playgroud)

这就是我用纯JavaScript做的方式

var txt = document.getElementById('txtAge');
if (txt.value == null) {
  //TO DO code
}
Run Code Online (Sandbox Code Playgroud)

第一种方式是txt的值未定义.但是第二种方式是值是输入元素内部的值.现在更有意思的是,在Mozilla Firebug的右下方窗格中,如果我向下滚动到txt的"值",我可以在那里看到它,两种方式.

我知道我可以简单地说$(txt).val(),但我也想知道为什么我不能访问元素的值,如果它被jQuery选中的话.jQuery只是一个JavaScript函数库吗?

Kor*_*lis 6

.value不是jquery api的一部分.您应该使用.val():

var txt = $(tableRow).find('input:text');
if (txt.val() == "") {
  //TO DO code
}
Run Code Online (Sandbox Code Playgroud)

dom对象和jquery dom对象并不完全相同.实际上,您可以打开开发人员工具(在webkit中)或Firebug(Firefox)来检查内部的内容.Jquery拥有更多信息(实际上,它包含它所代表的dom的实例).所以,如果你想使用.value,你需要从jquery对象调用"通用"dom对象,然后使用.value.

  • @Mike:`$(...)`返回一个jQuery对象,只是因为它可以完成所有这些魔法.jQuery对象基本上是DOM元素的集合,并提供了可以与DOM交互的所有方法. (2认同)