jquery对象没有属性属性

时间:2017-11-11 17:52:36

标签: javascript jquery attributes

我想枚举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插件。 我不知道下一步怎么办...谢谢!

2 个答案:

答案 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){});

再次感谢!