2012-07-25 3 views
3

을 제외한 신체의 모든 요소를 ​​선택하는 방법 :나는이 HTML이 어떻게 처음 사업부

<body> 
    <div id="switcher" class="switcher"> 
     <h3>Style Switcher</h3> 
     <button id="switcher-default"> 
       Default 
     </button> 
     <button id="switcher-narrow"> 
      Narrow Column 
     </button> 
     <button id="switcher-large"> 
      Large Print 
     </button> 
    </div> 
    <p>asdfasdfasdfas dsadf</p> 
    <p>asd'lfkasdf</p> 

    <script src="jquery.js"></script> 
    <script src="test.js"></script> 
</body> 

내가 내합니다 (id라는 스위처가) 첫째 div, 내가 클릭 할 때를 제외하고 신체의 모든 요소에 클래스를 추가 할을 대형 인쇄물 button.

나는

$(document).ready(function(){ 
     $("#switcher-large").bind("click", function(){  
     $("body").not("#switcher").addClass("large");  
     }); 
    }); 

$(document).ready(function(){ 
    $("#switcher-large").bind("click", function(){  
    $("body:not(:first-child)").addClass("large");  
    }); 
}); 

$(document).ready(function(){ 
    $("#switcher-large").bind("click", function(){  
    $("body:not(div)").addClass("large");  
    }); 
}); 

을 시도했지만 아무도 (클래스가 모든 요소에 적용) 제대로 작동하지 않습니다.

p 요소 만 선택하는 것과 같은 다른 방법을 찾고 싶지 않습니다. 그냥 내가 사용하는 선택기가 작동하지 않는 이유를 이해하고 싶습니다 ...

답변

4

document.body 자체를 제외해야합니다.

$("body *").not("#switcher").addClass("large"); 

처럼이 #switcher을 제외한 body의 모든 어린이를위한 쿼리합니다. 어쩌면 더 convinient : 설명에 대한

$(document.body).contents().not('#switcher').addClass('large'); 
+0

감사합니다. 그것은 contents 메소드를 사용하여 작동합니다. – caisah

1
$("body").children().not("#switcher").addClass("large");