2017-11-11 11 views
0

jquerObj.attributes 속성을 열거하여 일부 태그에서 자체 데이터를 가져 오려고합니다. 이 거의 모든 곳에서 나를 위해 작동합니다 : $('selector').eq(0); "속성"을 포함한 많은 속성을 포함하는 jquery 개체를 반환하며 속성 "특성"을 열거 할 수 있습니다. 하지만 이런 "테이블"태그로부터 데이터를로드 할 때jquery 객체에 속성 속성이 없습니다.

그것은 배열처럼 홀수 객체를 반환
$('#tableId').eq(0); 

, 그 속성이 "0", "길이"(= 1) "prevObject 포함 ".

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, JQuery와 데이터 테이블 플러그인이로드됩니다 나는 (OBJ (0) EQ의 반환 값) 콘솔에서 테스트했습니다. 다음에 수행하는 방법을 알 수 없습니다 ... 감사합니다!

+0

분명히 'obj' **가 jQuery 객체로 ** 시작됩니다. '.eq()'메소드는 DOM 요소를 반환하지 않습니다. jQuery 객체에는 "속성"속성이 없습니다. – Pointy

+0

[**'.eq' **] (http://api.jquery.com/eq/)는 축소 된 jQuery 객체를 반환합니다. 그래서'attributes' 속성이없는 jQuery 객체입니다. –

+0

@ibrahimmahrir 태그 버튼과 테이블에서 attrs를 읽으려고했습니다. 그것은 태그 버튼을 위해 작동합니다. 테이블에 속성이없는 이유는 무엇입니까? 고맙습니다! – brallow

답변

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

나는 eq (0)에 의해 반환 된 객체로 attr과 같은 jquery 메소드를 호출 할 수있다. 나는 그것이 jquery 객체라는 것을 의미한다고 생각한다. 다른 selector와 같은 속성 속성이없는 이유는 무엇입니까? 한편, attr을 사용하여 지정된 속성을 가져올 수 있습니다. 이는 객체에 att 정보가 있음을 의미합니다. 그래서 나는 확신한다. 다시 ur 도움을 주셔서 감사합니다 – brallow

+1

그냥 DOM 개체와 jQuery 개체를 혼합하지 마십시오 모든 것이 작동합니다. 물론, 속성을 적절한 방법으로 읽으십시오 - 특정 방법을 사용하십시오. 평범한 물건처럼 직접적으로. – WaldemarIce

+0

나는 그것을 지금 얻었다. '길이', '0'속성을 포함하는 개체는 일반적인 jquery 개체입니다. jquery 객체에 "attributes"속성이 없습니다. – 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){}); 

다시 한번 감사드립니다!