首页 > jquery中get()方法的问题

jquery中get()方法的问题

<!DOCTYPE html>
<html>
<head>
  <style>p { color:red; }</style>
  <script type="text/javascript" src="/jquery/jquery.js"></script>
</head>

<body>
  <p><b>Values: </b></p>
  <form>
    <input type="text" name="name" value="John"/>
    <input type="text" name="password" value="password"/>
    <input type="text" name="url" value="http://w3school.com.cn/"/>
  </form>

<script>
    $("p").append( $("input").map(function(){
      return $(this).val();
    }).get().join(", ") );
</script>

</body>
</html>

在W3C上面看到的一个例子,对于里面的<script>不太理解。
我想问一下,为什么要在js代码里加一个get()方法呢?我看了下jquery的官方文档,get()方法的参数不是需要一个index吗,比如get(0),get(1)之类的。
我知道这段js代码一直到get()之前,目的就是把所有input的value包装成一个数组返回,然后join(',')连接成一个字符串,就是不理解这个为什么要加一个不带参的get()
求各位高人解答,谢谢啦(∩_∩)


一看这表情就知道是你啦。
get方法确实可以传入索引,甚至可以传入负数代表从尾部取。
但同样也可以不带参数以获取所有成员的数组。
另外,上次说的事,你考虑的怎么样了?


get之后变为非jQuery对象,才是你想要的值数组
否则是jQuery对象 可以用 for in 把属性打印出来就知道了,还可以用instanceof检测是否是jQuery对象
应该是为了链是调用这样子处理的吧

你可以采用jQuery提供的 $.map
纯属个人这么认为


听说楼上是妹子就过来了!


话说,上次说的事考虑的怎么样?
index参数是可选,规定获取哪个匹配元素(通过 index 编号).


围观楼上勾搭妹子。
对一个jQuery对象。get()方法确实可以传入index,也可以直接使用[index]的方式。
例如:$('li').get(0),和$('li')[0]其实是一样的。
只不过get()更强大,可以传入负值,还可以不传值直接返回一个集合。


正确答案:

x = $('input').map(function(){return $(this).val() })
["1220000005877507", "1010000005876109", "1020000005877143", "", "", "on", "on", "", ""]

y = x.get()
["1220000005877507", "1010000005876109", "1020000005877143", "", "", "on", "on", "", ""]

x instanceof $
true

y instanceof $
false
【热门文章】
【热门文章】