2011-08-17 2 views
2

이 JQUERY 코드를 작성하는 가장 좋은 방법에 대해 물어보고 싶습니다. 내가 가진이 같은 DOM 구조 : 나는 사용자 ID의 목록을 추출 할JQUERY Refined Selection

<div id="chatCenterMembers"> 
    <div id="adam" class="chatmember 100"> 
     <div class="newchatmessage" style="display: block;"></div> 
    </div> 
    <div id="steven" class="chatmember 101"> 
     <div class="newchatmessage"></div> 
    </div> 
</div> 

- 예 : 클래스 "newchatmessage"와 DIV 블록을 표시하도록 설정 스타일을 가지고 배열 (100), (101) 클래스 이름을 - 예를 들어, 그것의 뚜렷한.

$ .each 루프로 할 수 있지만 비효율적입니다.

더 좋은 방법이 있습니까? 들으

+0

시작하려면 "사용자 이름"으로 설정이 개 ID를 가지고있다. 이 ID를 여러 번 사용하려면 클래스를 대신 사용하십시오. – Elorfin

+0

사용자 이름은 그냥 ... 라이브 코드처럼 보일 것입니다 ... newchatmessage 및 표시 블록 세트가있는 사용자의 경우 useridXX를 추출 할 수있는 방법이 있습니까? – Adam

답변

1

당신은 그냥 같은 필요한 모든 눈에 보이는 요소를 수집 할 수 있습니다 :

$(".chatmember .newchatmessage").filter(":visible").each(function() 
{ 
    //Extract here any information you want, i.e. 
    //this.className.match(/[0-9]+/) 
}); 
0

이 코드를보십시오 :

$('.newchatmessage').map(function(){ 
if ($(this).css('display') == 'block') 
    return $(this).parent().attr('class').replace('chatmember ',''); 
}).get(); 
관련 문제