2011-10-06 4 views
3

이 작업을 수행 할 수 없습니다. 제안 된 td에 "OH"가 포함되어 있으면 테스트 목적으로 경고를 표시하기 만하면됩니다.jQuery 요소에 무언가가 포함되어있는 경우, 내용을 수행하십시오.

<table id="v65-cart-shipping-details"> 
    <tr>..</tr> 
    <tr>..</tr> 
    <tr> 
     <td>United States, OH 43112</td> 
    <tr> 
    </table> 

경고문이 계속 표시됩니다 (예 : 미국, MI 48187). 경고가 계속 표시됩니다. 무엇이 누락 되었습니까?

$(document).ready(function() { 
    if ($("#v65-cart-shipping-details tr:eq(2) td:contains('OH')")) { 
     alert("Did Stuff") } 
}); 

답변

9

요소가 없더라도 true를 반환하므로 시도해보십시오.

$(document).ready(function() { 
    if ($("#v65-cart-shipping-details tr:eq(2) td:contains('OH')").length) { 
     alert("Did Stuff") } 
}); 
+0

와우, 내가 쳐다 봤는데 당신이 HTML을 생성하는 경우,이 같은 어드레스 셀 서식을 훨씬 빠른 것 내 코드는 오랫동안 할 수 있었고, 맹세 할 수 있었다. 두 번째 세트의 눈 덕분에 길이를 더했다! – ToddN

+0

글쎄, 실제로'undefined'를 리턴하지는 않을 것입니다. 단지'true'로 평가되는 빈 배열을 반환합니다. 해결책은이 문제를 해결합니다. +1 –

0

여기에주의해야합니다. 이 표가 HTML에서 거대한 경우 브라우저에서 오류가 발생할 수 있습니다 (IE8- 읽기).

<tr class="address" data-state="OH" data-zip="43112" ... > 
    <td>United States, OH 43112</td> 
<tr> 

그럼 당신은 쉽게 선택할 수 있습니다 :

if($("#v65-cart-shipping-details tr.address").is('[data-state="OH"]')) 
    alert('mom'); 
관련 문제