2011-02-07 5 views
3

divs 컬렉션이 있습니다.요소의 클래스 이름을 얻는 방법

<div class='happy person'><img src='#' /></div> 
<div class='fat person'><img src='#' /></div> 
<div class='joyous person'><img src='#' /></div> 
<div class='grotesque person'><img src='#' /></div> 
<div class='sad person'><img src='#' /></div> 

사용하여 선택한 ...

var people = $('.person') 

결과는 클래스 변수에 저장됩니다. jQuery는이 선택 결과를 HTMLDivElements의 배열로 저장한다.

나중에이 배열을보고 각 요소의 클래스와 관련하여 결정을 내릴 수 있기를 바랍니다. 가능한 해결책을 읽었습니다. 하지만 이것은 jQuery 객체를 직접 다루지 않기 때문에 실패합니다.

배열에서 div의 클래스 이름을 얻으려면 어떻게해야합니까?

답변

4

이 작동합니다 :

var people = $('.person'); 
$.each(people, function(index, el) { 
    var _this = $(el); 
    if (_this.hasClass('happy')) { 
     alert('Happy!'); 
    } else if (_this.hasClass('fat')) { 
     alert('Fat!'); 
    } 
}); 
0

루프 :

for (var i = 0; i < people.length; i++) 
{ 
    var class = people[i].attr('class'); 
} 

또는 jQuery로

가 :
people.each(function() 
{ 
    var class = $(this).attr('class'); 
}); 

당신은 클래스 fat person을 클래스 fat person 가지고 있지 갖는 것을 알 수 있습니까

? fatperson에서 CSS 속성을 상속합니다. 이와 같은 클래스 이름이 필요하면 밑줄을 사용하십시오 : fat_person.

+0

감사합니다. CSS 클래스의 상속을 이해합니다.귀하의 예제에서, 나는 "지방"클래스 "뚱뚱한"과 "사람"클래스와 함께 개체를 반환해야합니다 "지방"lookinf 것입니다 – iGbanam

0

개별 div의 모든 클래스를 가져 오려면 .attr 함수를 사용하십시오.

var classes = myDiv.attr('class'); 

이렇게하면 요소의 모든 클래스가 공백으로 구분 된 목록이 반환됩니다.

특정 클래스의 존재 여부를 확인하려면 .hasClass()을 사용하십시오. $('.person') 요소의 배열을 감싸의 jQuery 객체를 반환으로

var hasJoy = myDiv.hasClass('joyous'); 
+1

이것들은 jQuery 방법이라고 언급 할 가치가 있다고 생각하십시오. – vol7ron

+0

바로 jQuery입니다. 사용 가능한 jQuery 객체가 아직없는 경우 DOM 메소드를 직접 사용할 수 있습니다. – calvinf

+0

이 작동하지만 특정 DOM 개체의 클래스를 모두 얻으려면 찾고 있는데 – iGbanam

2

나는, 당신은 "나는 jQuery를 개체와 직접 거래하고 있지 않다"무슨 뜻인지 모르겠어요.

요소의 클래스를 가져 오려면 jQuery 객체에 .attr('class')을 사용하면됩니다. 에서 가져온으로

['happy person', 'fat person', ..., 'sad person'] 
1

:하십시오 .map()로이 결합하고 각 요소에 대한 전용 클래스 이름의 배열을 만들 수 있습니다

var classes = $('.person').map(function() { 
    return $(this).attr('class'); 
}).get(); 

이 다음과 같은 배열을 생성 할 것이다 http://bytes.com/topic/javascript/answers/91636-getting-class-name-string,이있을 수 있습니다 jQuery를 사용하지 않는다면 시도해 볼 가치가있다.

function getClassName(obj) { 
    if (typeof obj != "object" || obj === null) return false; 
    return /(\w+)\(/.exec(obj.constructor.toString())[1]; 
} 
0
div_attrs = node.attributes; 
div_class = div_attrs.getNamedItem("class").value; 
+0

'div_class'에서 변수는'div_attrs'이어야합니다. – TricksfortheWeb

관련 문제