代码之家  ›  专栏  ›  技术社区  ›  Chris

jquery元素变量似乎不可访问?

  •  1
  • Chris  · 技术社区  · 14 年前

    所以我得到了一组表单元素,通过使用

    var inputs = $("input.row_2");
    inputs[0].val()
    

    当我运行这个时,我被告知val不是一个有效的方法。

    我做错什么了?

    应该很容易……
    谢谢!

    3 回复  |  直到 14 年前
        1
  •  1
  •   gnarf    14 年前

    inputs[0] 返回dom元素,因此 inputs[0].value 会得到你想要的。

    您也可以使用 inputs.eq(0).val() 不会抱怨的 输入〔0〕 如果没有匹配项,则为未定义。

    .eq() 返回jquery对象(不是dom),而不是 .get() 这也是你从使用中得到的 [0]

        2
  •  0
  •   SLaks    14 年前

    jquery对象的行为类似于DOM元素数组。
    因此, inputs[0] 返回原始的dom元素,而不是jquery包装。
    因为原始DOM元素没有 val() 方法,您得到一个错误。

    要对特定元素调用jquery方法,应调用 eq() method ,像这样:

    inputs.eq(0).val();
    

    在您的情况下,您还可以简单地 value 属性,如下所示:

    inputs[0].value
    

    但是请注意,这不会像jquery的 Val.() 对于 <select> 元素。

        3
  •  0
  •   Kris van der Mast    14 年前
    $('input.row_2').first().val();