jquery对象没有属性属性
我想枚举jquerObj.attributes属性来从一些标签中获取我自己的数据。 这对我几乎无处不在: $('selector').eq(0);
它返回一个jquery对象(只有1),其中包含许多属性,包括“属性”,属性“属性”可以枚举。 但是,当欲从这样的“表”标签加载数据:jquery对象没有属性属性
$('#tableId').eq(0);
它返回一个奇数对象像阵列,它包含属性为“0”,“长度”(= 1),“prevObject ”。 我在控制台测试(obj是(0)当量的返回值):
obj[0]; // it looks like a DOM object
$(obj[0]); //get obj again.
obj.attributes===undefined;
obj.id===undefined;
obj.attr('id')==='#tableMain'; //THIS IS SO ODD. It looks like it is a jquery object!
顺便说一句,jquery的数据表插件被加载。 我不知道下一步该怎么做......谢谢!
这是完全正常的。您不能在纯html元素上调用jQuery方法。试想一下:
$('any-selector').eq(0).each(function() {
console.log(this)
console.log($(this))
})
你会得到另外两个对象,因为jQuery的增加了一些神奇的每一个元素,它包装他们。所以,你可以这样做:
$('selector').getAttribute('id') // calling js method on jQuery object
但并不是反之亦然:
var elm = document.getElementById('id')
elm.text() // calling jQuery method on plain dom object
// but you can wrap it with jQuery and then call jQuery method
$(elm).text()
我可以用eq(0)返回的对象调用一些像attr这样的jquery方法。我认为这意味着它是一个jQuery对象。为什么没有像其他选择器那样的属性属性?同时,我可以使用attr来获取指定的属性。这意味着对象包含att信息。所以我很确定。再次感谢您的帮助 – brallow
只是不要将jQuery对象与DOM对象混合在一起,一切都会起作用。当然,阅读适当的方式 - 用特定的方法。不是直接与普通物体一样。 – WaldemarIce
我已经明白了。 包含'length','0'属性的对象是普通的jquery对象。 jquery对象没有“attributes”属性。 – brallow
感谢每一个人。 我已经明白了。错误的是,我认为$('选择器')返回一个jquery对象的数组,这是错误的。 我用它来获取其他人的属性,并成功。
var objs = $('selector');
$.each(objs,function(idx,obj){
//obj here is a plain html object
$.each(obj.attributes,function(a,b){});
}
然后用它获取表标签并失败。
var obj = $('selector').eq(0); //returns jquery object.
$.each(obj.attributes,function(a,b){});
再次感谢!
很明显的情况是'obj' **作为一个jQuery对象开始**。 '.eq()'方法不返回一个DOM元素。 jQuery对象没有“属性”属性。 – Pointy
[**'.eq' **](http://api.jquery.com/eq/)返回一个精简的jQuery对象。所以它是一个没有'attributes'属性的jQuery对象。 –
@ibrahimmahrir我试图从标记按钮和表读取attrs。它适用于标签按钮。为什么表没有属性?谢谢! – brallow