/ / jquery objeto não possui propriedade de atributos - javascript, jquery, attribute

objeto jquery não tem atributos de propriedade - javascript, jquery, atributos

Eu quero enumerar a propriedade jquerObj.attributes para obter meus próprios dados de algumas tags. e isso funciona para mim em quase todos os lugares: $("selector").eq(0); Ele retorna um objeto jquery (apenas 1) que contém muitas propriedades, incluindo "atributos", e a propriedade "atributos" pode ser enumerada. Mas quando eu quero carregar dados de uma tag "table" como esta:

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

Ele retorna um objeto ímpar, como uma matriz, contém a propriedade "0", "length" (= 1), "prevObject". Eu testei no console (obj é o valor de retorno de 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!

btw, o plug-in de tabela de dados jquery é carregado. Eu não sei como fazer a seguir ... Obrigado!

Respostas:

0 para resposta № 1

É perfeitamente normal. Você não pode chamar métodos jQuery em elementos html simples. Considere o seguinte:

$("any-selector").eq(0).each(function () {
console.log(this)
console.log($(this))
})

Você receberá dois outros objetos, pois o jQuery adiciona um pouco de magia a cada elemento, os envolve. Então você pode fazer isso:

$("selector").getAttribute("id") // calling js method on jQuery object

Mas não vice-versa:

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 para resposta № 2

Obrigado por todos. Eu entendi agora. O erro é que acho que $ ("selector") retorna uma matriz de objetos jquery, o que está errado. Eu usei isso para obter atributos para os outros e ter sucesso.

   var objs = $("selector");
$.each(objs,function(idx,obj){
//obj here is a plain html object
$.each(obj.attributes,function(a,b){});
}

E usei isso para obter a tag da tabela e ela falhou.

var obj = $("selector").eq(0);    //returns jquery object.
$.each(obj.attributes,function(a,b){});

Obrigado novamente!