2017-11-11 17 views
0

jquerObj.attributesプロパティを列挙して、いくつかのタグから自分のデータを取得します。 これはほとんどどこでも使えます: $('selector').eq(0); 「属性」を含む多くのプロパティを含むjqueryオブジェクト(1のみ)を返し、プロパティ「属性」を列挙できます。 しかし、私は、このような「表」タグからデータをロードする:jqueryオブジェクトには属性のプロパティがありません

$('#tableId').eq(0); 

それはアレイのような奇妙なオブジェクトを返し、それがプロパティ「0」、「長さ」(= 1)、「prevObjectが含ま"私はコンソールでテストしてみた (objが(0)EQの戻り値です):

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のデータテーブルプラグインがロードされます。 次の手順がわからない...ありがとう!

+0

明らかに、 'obj' **がjQueryオブジェクトとして**始まります。 '.eq()'メソッドはDOM要素を返しません。 jQueryオブジェクトには「属性」プロパティはありません。 – Pointy

+0

[** '.eq' **](http://api.jquery.com/eq/)は、縮小jQueryオブジェクトを返します。つまり、 'attributes'プロパティを持たないjQueryオブジェクトです。 –

+0

@ibrahimmahrir私はタグのボタンとテーブルからattrsを読み込もうとしました。それはタグボタンのために働く。なぜ表に属性がないのですか?ありがとうございました! – brallow

答えて

0

これは完全に正常です。プレーンhtml要素に対してjQueryメソッドを呼び出すことはできません。

jQueryは各要素にいくつかの魔法を追加するので、他の2つのオブジェクトを取得します。それらをラップします。

$('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() 
+0

私は、eq(0)によって返されるオブジェクトでattrのようないくつかのjqueryメソッドを呼び出すことができます。私はそれがjqueryオブジェクトであることを意味すると思います。他のセレクタのような属性プロパティがないのはなぜですか?一方、私は指定された属性を取得するためにattrを使用することができます。つまり、オブジェクトにatt情報が含まれていることを意味します。私は恥ずかしがり屋です。 urヘルプのおかげでもう一度 – brallow

+1

jQueryオブジェクトとDOMオブジェクトを混在させないでください。すべてうまくいくでしょう。そして、もちろん、属性を適切な方法で読む - 特定の方法で。普通のオブジェクトと同じように、直接ではありません。 – WaldemarIce

+0

私は今それを持っています。 'length'、 '0'プロパティを含むオブジェクトは、通常のjqueryオブジェクトです。 jqueryオブジェクトには「属性」プロパティがありません。 – brallow

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

もう一度おねがいします!

関連する問題