2011-10-08 3 views
0

더 이상 하나 이상의 클래스를 가지고 있는데 표시하려면 : 없음를 그것에서 값 을 가지고있는 클래스 ss_label에 :, 사람 :출발 :돌아 오는 중 :. ss_label_adult, ss_label_child 및 ss_label_inf의 추가 클래스가있는 마지막 3 개를 올바르게 표시하고 싶습니다.디스플레이 : 어느 것도 내가이 코드 HTML 조각이

HTML을 API에서 검색하므로 형식을 변경할 수 없습니다. 나는이 일을 생각할 수

<table cellspacing='0' class='ss_sp_as'> 
<tbody> 
<tr class='ss_sp_sc_from'> 
    <td class='ss_label'> 
     From: 
    </td> 
    <tr class='ss_sp_sc_to'> 
     <td class='ss_label'> 
      To: 
     </td> 
     </table> 
     <table cellspacing='0' class='ss_sp_dates'> 
     <tbody> 
     <tr class='ss_sp_sc_to'> 
      <td class='ss_label'> 
       Departing:&nbsp; 
      </td> 
      <tr class='ss_sp_sc_to'> 
       <td class='ss_label'> 
        Returning:&nbsp; 
       </td> 
       </table> 
       <table cellspacing='0' class='ss_sp_pass'> 
       <tbody> 
       <tr class='ss_sp_sc_to'> 
        <td class="ss_label ss_label_adult"> 
         &nbsp; 
        </td> 
        <td class="ss_label ss_label_child"> 
         &nbsp; 
        </td> 
        <td class="ss_label ss_label_inf"> 
         &nbsp; 
        </td> 
        </table> 

수있는 유일한 방법은, 표시가 없습니다 : 더 클래스 없어 것과 동적 아무도? 그게 말이 되니?

덕분에 숨길 수있는 요소는 하나의 클래스 이름이

답변

0

숨겨져 야 이러한 요소가 여러 클래스 이름이를 많이. 그래서,이 표현은 작동합니다 :

$(".ss_label").filter(function(){ 
    return $(this).attr("class") == "ss_label"; 
}).css("display","none"); 
  1. 모든 .ss_label 요소는 그 클래스 속성이 포함되어 더 이상 ss_label보다가 유지되지 않으며, 다른 사람을 무시
  2. 모든 요소를 ​​선택한다.
  3. 나머지 요소에는 display 속성 값이 none으로 지정됩니다.

바이올린 :. http://jsfiddle.net/QGSsG/

+0

무엇 $ ('[클래스 = "ss_label을"]')에 대한 숨기기()? Class (Name) 애트리뷰트에는 단일 클래스 이름 인 "ss_label"앞뒤에 여분의 공백/탭/etc가 포함될 수 있으므로 비교 전에 트리밍해야합니다. – biziclop

+0

@biziclop 표시된 소스 코드에 따르면 공백이 없습니다. HTML은 API를 통해 반환되기 때문에 일치하지 않는'class' 속성을 기대하지 않습니다. 당신의 제안을 적용 할 때, 나는 $ (".ss_label")을 얻는다. (function() {return/^ \ s * ss_label \ s * $ /. test (this.className)}). ' –

관련 문제