2011-10-15 3 views
1

var span에 들어가는 ID 사이를 확인하고 싶습니다. 비어 있으면 입력을 위해 CSS를 넣었지만 작동하지 않습니다. 어떻게 고칠 수 있니? (this)$(span)-http://jsfiddle.net/Pjqv2/2/'id'에 내용이 없는지 확인하고 싶습니다.

+3

대신 모든 일을하는 경우, 당신은이 같은 jQuery를 .each() (.each() in jQuery docs)로 할 수있는 (".valid").closest(".auto_box")에 의해 발견 세트에 반복 할 필요가 이 문자열 연결, 당신은 할 수있다 :'var span = $ ('. valid'). closest ('. auto_box'). find ('span'); if (span.is (': empty')) {...}'. –

답변

1

$('.valid') 대신 또는 (this)을 사용하고 있습니다. 또한, 당신은 잘못된 방식으로 이것을하고 있습니다. .find('span')은 해당 범위에 설정된 jQuery 객체를 반환합니다.

ID를 가져올 필요가 없습니다. 그런 다음 ID를 다시 확인하십시오. 더 중요한 것은입니다. 코드는 .auto_box의 여러 인스턴스에서 실행해야합니다.

var autoBoxes = $(".valid").closest(".auto_box"); 
autoBoxes.each(function(){ 
    if ($(this).find("span").is(":empty")) { 
     $(this).find("input").css("background-color", "#000"); 
    } 
}); 

이 스크립트와 업데이트 된 jsfiddle : http://jsfiddle.net/dvir_azulay/Pjqv2/4/

0

변경 :

var span = '#'+$('.valid').closest('.auto_box').find('span').attr('id'); 
if ($(span+':empty').length != 0) { 
    //alert('ok') 
    (this).closest('.auto_box').find('input').css('background-color','#000'); 
} 

여기 내 전체 코드를 참조하십시오. I updated your fiddle에이 변경 사항이 반영됩니다.

관련 문제