2013-11-03 2 views
0

비어 있지 않은 경우 부모 컨테이너에 클래스를 추가하려고하는 입력 필드가 몇 개 있습니다.JQuery - 요소를 조건부로 반복하여 addClass()에 추가합니다.

는 여기에 커피 스크립트입니다 :

$(".inputA, .inputB").parent().addClass(-> 
     if !$(this).is(":empty") 
      "input-set" 
    ) 

이 성공적으로 상위 클래스에 "input-set"를 추가하지만, 모든 경우에, 그냥 빈 입력 필드된다.

:(

+1

빈 입력이나 입력이 채워진 입력에 대해 입력 집합을 원한다고 말하는가? – ReQwire

+0

입력 집합은 입력 필드에 값이있는 모든 입력에 적용되어야합니다. – Derek

답변

3

사용 jQuery.filter()

$(".inputA, .inputB").filter(function(){ 
    return this.value !=''; 
}).parent().addClass("input-set"); 

보다 적은 함수 호출 $.each

1

첫째, input 요소는 빈 정의입니다 ..

당신이 부모 요소가 아닌 input 사람을 테스트하는 http://api.jquery.com/empty-selector/

두 번째로 :empty 문서를 읽고 .. (그들은 부모이기 때문에 그들이 비어 있지 않다는 것을 의미합니다. 그들은 모두 법안에 적합합니다.)

3

:empty은 자식이없는 요소를 선택합니다. 따라서 조건에 따라 특정 요소의 부모를 선택하는 것은 의미가 없습니다.

심판 : https://developer.mozilla.org/en-US/docs/Web/CSS/:empty

당신은 다음과 같은 것을 사용할 수 있습니다 채워되지 않은 입력의 부모 클래스를 추가하고자하는 경우 :

$(".inputA, .inputB").each(function(){ 
    if (this.value !== "") { 
     $(this).parent().addClass('input-set'); 
    } 
}); 
관련 문제