2016-10-13 2 views
0

jQuery에서 여러 조건이 충족 될 때만 실행되는 작업이있을 때 어떤 기술이 사용되는지 이해하려고합니다. 나는 필터가 대답인지 아닌지를 모른다.jQuery Selectors 두 조건을 만족하는 테이블 행 제거

예를 들어, 한 페이지에 여러 개의 표가 있습니다. 두 조건을 만족하는 테이블 행을 제거하고 싶습니다. 첫 번째 조건은 행이 테이블의 첫 번째 행 (테이블 요소의 첫 번째 자식)이 아니어야한다는 것입니다. 두 번째 조건은 행에 적용된 스타일이 없어야한다는 것입니다 (스타일 요소가 선언되지 않음). 나는 복잡한 선택자에 대한 표기법에 대해 혼란스러워한다. 나는 지금 단순한 셀렉터를 뛰어 넘기 위해 노력하고있다.

예를 들어, 사용할 표는 gvBigTable입니다. 나는 다음을 가지고있다 :

$("#gvBigTable table tbody tr.not('style')").remove(); 
$("#gvBigTable table tbody tr.not(first-child)".remove(); 

행을 제거하려면이 두 조건을 모두 만족해야한다. 어떤 도움을 주셔서 감사합니다. 감사.

+0

당신은'.remove()'대신에'display : none'을 받아 들인다면 하나의 선택자로 이러한 규칙을 만족시킬 수 있습니다. (순수한 CSS의 요구 사항을 거의 구현합니다) : #gvBigTable table tbody tr : first-child ~ tr : not ([스타일]) {display : none; }' –

답변

1

:not()을 올바르게 사용하지 않았습니다. 다음과 같이 할 수 있습니다. 순수 CSS의 솔루션은 다음과 같다 David Thomas의 제안에 따라 :

$("table tbody tr:not(':first-child'):not('[style]')").remove();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tbody> 
 
     <tr> 
 
      <td>111</td> 
 
     </tr> 
 
     <tr> 
 
      <td>222</td> 
 
     </tr> 
 
     <tr style=""> 
 
      <td>333</td> 
 
     </tr> 
 
     <tr> 
 
      <td>444</td> 
 
     </tr> 
 
    </tbody> 
 
</table>

UPDATE

.

당신이 다음 행을 제거하기 위해 jQuery를 함께 선택 table tbody tr:first-child ~ tr:not([style])을 사용할 수 있습니다 display: none를 사용하지 않을 경우

table tbody tr:first-child ~ tr:not([style]) { 
 
    display: none; 
 
}
<table> 
 
    <tbody> 
 
    <tr> 
 
     <td>111</td> 
 
    </tr> 
 
    <tr> 
 
     <td>222</td> 
 
    </tr> 
 
    <tr style=""> 
 
     <td>333</td> 
 
    </tr> 
 
    <tr> 
 
     <td>444</td> 
 
    </tr> 
 
    </tbody> 
 
</table>
.

+0

감사합니다. 그래서이 문장을 읽는 방식으로, 선택자의 체인은 AND 구문처럼 작동합니다. OR 문을 원한다면 어떻게이 논리가 바뀌나요? 조건 사이에 쉼표를 넣을 수 있습니까? – captainduh

+1

예'$ ("table tbody tr : not ('first-child')), 테이블 tbody tr : not ('[스타일]')")'같은 쉼표. @captainduh – Azim

+0

질문에 대한 또 다른 답변을 추가 할 가치가 없습니다. 내 [질문에 대한 의견]을 읽어 주시겠습니까 (http://stackoverflow.com/questions/40028545/jquery-selectors-removing-table-rows -that-meets-two-conditions # comment67335435_40028545) 답변을 업데이트 하시겠습니까? –

관련 문제