2011-11-07 3 views
1

jQuery 1.4 removeClass();은 이제 인수로 함수를 사용하기 때문입니다.removeClass() 콜백 함수를 사용하는 방법은 무엇입니까?

<body> 태그는 예를 들어 여기에 추가 된 몇 가지 클래스가 있습니다

나는 클래스 이름을 대체 할 수하고자하는, 내가 removeClass()에서 함수가 나를 도울 수 있다고 생각하지만, 나는 '돈
<body class="heading-helvetica para-georgia pattern-flowers"> 

사실 the documentation on the jQuery site을 이해하지 못하고 Regex에 대해 잘하지 못했습니다.

예 : heading-helveticaheading-myriad 또는 para-georgiapara-times 등으로 대체하려면 어떻게해야하나요?

내가 이전에 교체하려고하는 클래스 이름이 클래스 이름의 목록에있는 첫 번째 경우에만 작동이 같은 것을 사용했다 : 당신이 그들 모두를 처리하려면

$('#headings li').click(function(){ 
    var this_class = $(this).attr('id'); 
    $('body[class|="heading"]').removeClass(); 
    $('body').addClass(this_class); 
}); 
+0

'$ ('something '). removeClass ('heading-helvetica '). addClass ('heading-myriad ');'. 이 방법이 효과가 없을만한 이유가 있습니까? – rossipedia

답변

2

body 태그에서 클래스 목록을 가져 와서 반복/구문 분석해야합니다.

클래스를 가져 오는 방법은이 기사를 참조하십시오.

Get class list for element with jQuery

추가 클래스 목록 및 제거하는 클래스의 목록을 파악해야합니다. removeClass 메소드의 매개 변수로 함수를 사용하는 것은 실제로 필요하지 않습니다. 클래스를 추가해야하기 때문에 아마도 잘못된 방법 일 것입니다.

+0

Pefect. 나는 이것의 약간 변이를 구성하고 잘 작동했다. 감사! –

0

을, 당신 대신 .attr()을 사용할 수 있습니다. 예 : 당신은 당신이 removeClass()addClass() 더 나을 수 있습니다 무슨 일을하는지에 따라, 그래도 꽤 넓은입니다

var prev = $("body").attr('class'); $("body").attr('class', prev.replace('helvetica', 'myriad'));

.

관련 문제