2014-03-05 7 views
1

나는 사용중인 플러그인을 통해 즉석에서 생성되는 요소가 있으며, 유일한 div 인 경우 특정 div에 클래스를 제공하려고합니다. 동적으로 생성 된 요소에 클래스를 추가 할 때 문제가 발생했습니다.

나는 하나 개의 요소가있을 경우 경보가 작동하는지 조건부 작성하는 경우

은 (경고가 나타납니다),하지만 난 그것에 클래스를 지정하려고하면이 할당되지 않습니다

경고 코드 (작품)

if ($('#carousel > div').length == 1) { 
    alert('code'); 
} 

클래스 코드 당신이 원하는 필요한 요소를 지적하지 않는 상황 $(this)에서

if ($('#carousel > div').length == 1) { 
    $(this).addClass('code'); 
} 

답변

2

this 당신이 생각하는 것입니다. if 블록 실행 컨텍스트 (this) 변하지 않는다 - 그것은 if 블록 밖에 언급 된 바와 같이, 여전히 동일한 객체를 참조 할 if 블록 내부 this을하므로 if 블록 내부 thisdiv

언급되지 않을
if ($('#carousel > div').length == 1) { 
    $('#carousel > div').addClass('code'); 
} 
+0

이것은 작동합니다. 왜'$ (this)'가 작동하지 않습니까? 나는 그것을 얻지 않는다. – BlekStena

+0

@BlekStena '이'가 말하는 것까지 귀결됩니다. –

3

을 (작동하지 않습니다).

시도,

var cache = $('#carousel > div'); 
if (cache.length == 1) { 
    cache.addClass('code'); 
} 
1

jQuery가 "빈"객체를 처리 할 수 ​​있기 때문에 if은 쓸모가 없습니다. 그래서 당신이 정말로 필요하다 : $('#carousel > div').length0입니다

$('#carousel > div').addClass('code');

경우, 아무 일도 일어나지 않습니다.

관련 문제