いくつかのタグから自分のデータを取得するためにjquerObj.attributesプロパティを列挙したいです。 そしてこれはほとんどどこでも私のために働く:
$("selector").eq(0);
"attributes"を含む多くのプロパティを含むjqueryオブジェクト(1のみ)を返します。プロパティ "attributes"を列挙することができます。 しかし、私がこのような「テーブル」タグからデータをロードしたいときは:
$("#tableId").eq(0);
それは配列のような奇妙なオブジェクトを返し、それはプロパティ "0"、 "長さ"(= 1)、 "prevObject"を含みます。 コンソールでテストしました(objはeq(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のdatatableプラグインがロードされます。 次はどうしたらいいかわからない…ありがとう!
回答:
回答№1は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()
回答№2の場合は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){});
再度、感謝します!