2011-08-30 4 views
17

좋아요. 양식이있는 jQuery 대화 상자가 있는데 이걸 알아 내려고 노력하고 있습니다 ... 내가하려는 일을 말로 표현할 수 있는지 보도록하겠습니다.jquery : ul이 비어있는 경우

3 개의 텍스트 상자가 있습니다. #apInterest, #apPayment#apPrincipal과 같은 순서로 입력하십시오. 내가 뭘하려고 오전의

기본 영어 조건 : 다른 99.99 트리거 오류에 비해 0보다 작거나 큰 #apInterest.val 경우에서의 keyup에

.. 그것이 어떤 li이있는 경우하지 .hide 경우, ul#mylist을 확인

#apPayment의 경우 .val이 0보다 작은 경우 오류가 발생합니다. 그렇지 않으면 li의 목록을 확인하십시오.

#apPrincipal

같은 것을 정확히 #apPayment 나는 또한 나는 모든이와 유사한 기능을 가지고

if ($("#mylist :not(:contains(li))")){ 
$('#popuperrors').hide(); 
} 

을 시도했지만 내가 바로이 순간

$('#apInterest').live("keyup", function(e) { 
var parent = $('.inter').parents("ul:first"); 
if ($('#apInterest').val() < 0 || $('#apInterest').val() > 99.99) { 
    $('.inter').remove(); 
    $('#mylist').append('<li class="inter">Interest Rate cannot be below 0 or above 99.99</li>'); 
    $('#popuperrors').show(); 
    $(this).addClass('error'); 
} else { 
    $(this).removeClass('error'); 
    $('.inter').remove(); 
    alert(parent.children().text); 
    if (parent.children().length == 0){ 
     $('#popuperrors').hide(); 
    } 
} 
}); 

을 가지고있는

로 3 textbox하지만 아무도 노력하고있는 것 같아요 .. 이걸 완료하는 방법에 대한 아이디어.

+0

가능한 중복 (http://stackoverflow.com/questions/1526873/jquery-if-div-id-has-children) –

답변

49
if ($('#mylist li').length == 0) ... 
+5

이를 [JQuery와 DIV ID가 아이가있는 경우] 저스틴의 부분에 대한 공통적이고 이해하기 쉬운 실수입니다. '$ ("# mylist : not (: contains (li))")'는 결코 null이 될 수 없다; 선택기가 아무 것도없는 경우에도 항상 jQuery 객체를 생성합니다. 이런 식으로 대상의 길이를 테스트하는 것은 길입니다. – Blazemonger

+0

이것은 나를 위해 일했습니다. Joseph Silber의 게시물도 마찬가지입니다. – Justin

+0

$ ('# mylist li')을 비교하는 것이 더 낫습니다. 길이 === 0 – Ajey

3

jQuery는 항상 요소 배열을 반환합니다. 일치하는 항목이 없으면 배열이 비어 있습니다.

console.log(!![]); // logs: true 

당신은 반환 된 세트의 길이를 확인하려면 : 자바 스크립트에서 빈 배열은 true로 평가 나는 그것이 잘 읽고 있기 때문에 children() 방법을 사용하여 좋아

if (! $("#mylist li").length){ 
    $('#popuperrors').hide(); 
} 
+0

처럼 작동했습니다 ... 나는 둘 다 시도했습니다. – Justin

5

을 그리고 당신 경우에도 작동 이미 귀하의 ul에 대한 선택기를 캐시했습니다. 여기에 보이는 무엇을 같은 :

$myList = $('#myList') 
if ($myList.children().length === 0) ... 
관련 문제