我想枚举jquerObj.attributes属性以从某些标签获取我自己的数据。
这对我来说几乎无处不在:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="">
<div class="field-box"> <input type="radio" name="gender" value="male"> Male<br></div>
<div class="field-box"> <input type="radio" name="gender" value="female"> Female<br></div>
<div class="field-box"> <input type="radio" name="gender" value="other"> Other</div>
</form>
它返回一个jquery对象(只有1),它包含许多属性,包括“attributes”,并且可以枚举属性“attributes”。
但是当我想从这样的“table”标签加载数据时:
$('selector').eq(0);
它返回一个像数组一样的奇数对象,它包含属性“0”,“length”(= 1),“prevObject”。 我在控制台中测试过(obj是eq(0)的返回值):
$('#tableId').eq(0);
btw,加载了jquery datatable插件。 我不知道下一步怎么办...谢谢!
答案 0 :(得分:0)
这是完全正常的。你不能在普通的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()
答案 1 :(得分:0)
感谢每一个人。 我现在知道了。错误是我认为$('selector')返回一个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){});
再次感谢!