【发布时间】:2014-11-07 11:42:23
【问题描述】:
假设我有一个元素数组上的地图。回调函数获取数组中该位置的索引和值。
如果我将回调接收到的数组元素包装在 $() 中,它的行为与我预期的一样。如果我使用它而不将其包装在 $() 中,则会出现错误。
var nonHiddenElements = $( "form :input" ).not(':hidden');
nonHiddenElements.map(function(index, element){
input_id = $(element).attr('id'); // this works
input_id = element.attr('id') ; // this gives an error
})
谁能解释一下这是如何工作的。 这是 jQuery 的怪癖,还是 JavScript 的东西?
我的 nonHiddenElements 数组究竟包含什么类型的对象? 传递给回调的元素是什么? 主要是 $() 在做什么?
【问题讨论】:
-
可能是因为返回的元素是 name 或其他类型的标识符,而不是实际的 DOM 对象本身。
-
好的,有道理。我在哪里可以读到这种东西。似乎暗示我在阅读每个教程之前就知道这些事情。
-
你试过 element.id 吗?
.attr()是一个 jquery 关键字。为了使用它,您需要使用$(element)调用 jquery。 -
@wobbily_col 我很确定它在相应 jQuery 函数的文档中。
-
$(element)返回一个包装DOM element的jQuery对象。 api.jquery.com/jquery
标签: javascript jquery