2012-03-10 3 views
3

내 자신의 클래스가있는 요소에서 사용자 정의 속성을 사용합니다. 나는 클래스의 모든 요소에 대한 사용자 지정 특성 값을 반환하려고합니다.jQuery 객체의 요소에서 속성 값의 배열을 얻는 방법

jQuery를 사용하여 클래스별로 요소를 찾고 jQuery는 객체를 배열에 배치합니다.

var tabs = $('li.tab_item'); 

개체가 배열에 포함되었으므로 모든 배열 멤버의 사용자 지정 특성 값을 반환하고 싶습니다.

어떻게이 작업을 수행 할 수 있습니까?

+1

당신의 가장 친한 친구 :. JQuery와-문서 (http://docs.jquery.com/Main_Page) – Christoph

답변

7
var tab_attribs = $('li.tab_item').map(function() { 
    return $(this).attr("custom_attribute"); 
}); 

사용자 지정 속성 값의 배열을 제공합니다. 물론, 당신은 전통적으로이 작업을 수행 할 수 있습니다

var tab_attribs = []; 
$('li.tab_item').each(function() { 
    tab_attribs.push($(this).attr("custom_attribute")); 
}); 

을 어쨌든, 당신은 아마 data-*의 사용은 HTML5가 제공하는 속성을 확인해야합니다 :

<li class="tab_item" data-foo="some custom data"> 

및 (jQuery data() 참조)

$('li.tab_item').data("foo"); // -> "some custom data" 
+0

덕분에 ... 상단에 모두 ('li.tab_item') 데이터 ("foo는 $ 근무 "); // 하나의 엔트리 만 반환합니다. – garyM

+0

@garyM 물론입니다. 당신은'map()'또는'each()'와 같은 루프에서 그것을 사용하기로되어 있습니다. – Tomalak

+0

아 ... 나는 $ ('li.tab_item')처럼 작동한다고 생각했습니다. 배열을 반환했습니다. jQuery 문서에서 ".attr()"에 대한 사실을 언급합니다. 다시 감사드립니다 ... – garyM

5

사용 .map() :

$("li.tab_item").map(function(){ 
    return this.getAttribute("myAttribute"); 
}); 

이렇게하면 jQuery 객체에 래핑 된 값의 배열을 얻을 수 있습니다. 배열을 가져 오려면 .get(), 즉 .map(...).get()으로 전화하십시오.

그건 그렇고, 당신은 또한 클래스 대신 속성으로 요소를 선택할 수 있습니다

$("[myAttribute]") 

이는 myAttribute 속성이 페이지의 모든 요소를 ​​반환합니다.

관련 문제