2009-12-23 5 views
1
$('fieldset.one label, fieldset.two label').each(function() { 
    var className = $(this).text().trim().toLowerCase(); 
    $(this).addClass('default ' + className); 
}); 

레이블 요소에 클래스를 동적으로 추가하지만 스타일을 지정하려고해도 효과가 없습니다. 그 중 하나는 내가 불을 지르고에서 볼, .sedan 클래스가 자동으로 추가가 있지만 아무런 영향이없는 다음CSS는 동적 클래스에 영향을 미치지 않습니다.

.sedan { 
    display:none !important; 
} 

HTML :

코드 아무 문제가 없습니다
<fieldset class="one"> 
    <label>sedan</label> 
    <label>suv</label> 
    <label>truck</label> 
</fieldset> 

<fieldset class="two"> 
    <label>sedan</label> 
    <label>suv</label> 
    <label>truck</label> 
</fieldset> 
+1

는 HTML을주십시오이 표적이되고. – Sampson

+0

그냥 고마워. – 3zzy

+0

그건'

'이 아닙니다. 실제 HTML을 보여주는 것은 어떻습니까? –

답변

1

사용 jQuery의 trim 방법 :

var className = $.trim($(this).text()).toLowerCase(); 
+0

이유가 확실하지 않은 이유는 제공된 최초의 코드는 Javascript 1.8.1'String.trim()'메소드를 실제로 구현 한 최신 버전의 Firefox에서만 작동합니다. –

+0

아, 누가 downvoted (사람에 의해) 실제로 해결책입니다! :) – 3zzy

+0

Nimbuz, 코드가 그대로 작동합니다. – Sampson

0

당신 '을 여기 게시했습니다. 난 그냥 로컬로 테스트하고 잘 작동합니다. 선택기가 올바른지 확인하십시오. 그러면 스타일이 방화범으로 추가되는지 여부를 확인할 수 있습니다. 나를 위해

+1

"default"다음에 공백이 있고 jQuery가 공백으로 나뉩니다. OP 코드는 각 요소에 두 개의 다른 클래스를 추가해야합니다. – outis

+0

OP 코드 *는 두 개의 클래스를 추가합니다 (여기에 게시 된 내용을 참조). – Sampson

관련 문제