문제
나를 구현하기 위해 노력하고 HTML 라디오 버튼 행동에 집 Div 에 JQuery.를 제거하려고"설정"클래스에서 모든 요소를 다음 사용하 addClass()를 다시 설정(하)하는 요소를 클릭:
$(".button").each(function() {
$(this).click(function(){
// what goes here to call removeClass() on *all* the elements?
$(this).addClass("set");
});
});
내가 원하는 전화를 removeClass()를 모든 요소를 이 경우$(".버"),하지만 할 수 없을 참조하$(".버")명시적으로 합니다.
수출$(".버").removeClass("set")외부 루프 이성을 높이기 위해 노력하는 프로그램과 행동에는 내부에는 각()루프에 의해 변경될 수 있습 다른 매개 변수입니다.
어떤 방법에 액세스하는 전체 세트의 요소를 내에서,또는 그들에게 전달에서 변수로?또는 있는 다른 방법으로 접근하는 문제입니까?
해결책
당신이 찾고 있을 수 있습니다에 대한 새로운 선택 기능 때문에,당신은 플러그인:
jQuery.fn.test = function() {
console.log(this.selector); // .button
};
$('.button').test();
다른 팁
할 수 없는 경우 하드드 선택에서 당신의 내면의 기능,jQuery 할 수 있는 실제로 반환하는 데 사용되는 문자열로에서 선택기본다.보 $('.bla').선택
이것은 추가 되었습니다만 최신 버전에서도.
이것은 불필요하게 복잡할 수 있습니다.더 명확한 그림을 얻기 위하여 무엇을 궁극적으로 노력하고 달성했다.
내부 루프를 가져올 수 있습니다 당신이 무엇을 좋아 jquery$("div")//루프 안에서
당신이 말하는"수는 없지만 참조하$(".버")명시적으로 합니다.".그 이유는 무엇입니까?
$(".button").each(function() {
$(this).click(function(){
$('.button').removeClass('set'); // this should do it
$(this).addClass("set");
});
});
변경:
$(".button").each(function() {
$(this).click(function(){
$('.button').removeClass("set");
$(this).addClass("set");
});
});
는 것이 문제가 되는 조금 느리하는 데 당깁니다.버튼을 때마다,하지만 그는 유일한 방법을 포함하는 루프에서 다음과 같습니다.
여전히지 참조할 수는 없습$('.버)에서 내부 기능을 캡처를 참조에서 무료로 변수를 대신?
var buttons = $(".button");
buttons.each(function() {
$(this).click(function(){
// what goes here to call removeClass() on *all* the elements?
buttons.removeClass('set');
$(this).addClass("set");
});
});
내가 대답 묻는 질문에 몸의 텍스트:을 설정하려는 경우에는 클래스의 모든 기타 는 요소의 형제를 사용 형제입니다.
재미있기 때문에 이것은 로드맵하에 radioClass()
당신이 원하는 것은 형제자매, 고,사용하지 않는 각각의 설정을 클릭하 이벤트 중 하나.
$(".button").click(function() {
$(this).addClass('set');
$(this).siblings('.button').removeClass('set');
});
이 예제에 대해 위에서 작업: