我选择了html元素
var elements = $('*[my-elem="false"]');
因为每个元素都有一个属性id,我希望在迭代中得到一些值来获取当前迭代元素的id,所以我试过
$.each(elements, function(index, item){
var itemId = item.attr("id").val();
});
但我收到了以下错误
TypeError: item.attr is not a function
答案 0 :(得分:7)
试试console.log(item)
。你应该看到它是一个普通的HTML元素 - 而不是一个jQuery对象。
请注意,.val()
专门指代元素的value
属性。
考虑到这两点,如果您的目标是获取ID,则可以使用item.id
,this.id
或$(item).attr("id")
。
答案 1 :(得分:1)
.attr是一个jQuery方法,因此您需要使用您的元素,就像它是一个jQuery选择器一样。另外,.val
您不需要.attr('id')
,所以这应该有效
var itemId = $(item).attr("id");
答案 2 :(得分:1)
就像
一样简单var itemId = item.id;
答案 3 :(得分:0)
item
是一个DOM元素,attr
是一个jQuery函数,因此您只需将其包装在jQuery表示法var itemId = $(item).attr('id').val();
答案 4 :(得分:0)
在循环DOM元素时,您使用的是每个的错误版本。使用这个。 (https://api.jquery.com/each/)
val stream = new FileInputStream(file)
val json = try { Json.parse(stream) } finally { stream.close() }
答案 5 :(得分:0)
尝试
var elements = $('selector');
elements.each(function() {
alert($(this).attr('id'));
});
答案 6 :(得分:0)
var itemId = this.id;
也可以使用