2013-04-29 1 views
2
<ul id="bad-drifting"> 
    <li>text</li> 
</ul> 

http://jsfiddle.net/wZ8MC/2/jQuery를이있는 경우() 선택은 '

jQuery(document).ready(function() { 
    if (jQuery('#bad-drifting').has('em')) { 
     jQuery('#bad-drifting').css({'color': 'red'}); 
     jQuery('#bad-drifting').css({'font-weight': 'bold'}); 
    } 
}); 

http://jsfiddle.net/Xzn6y/ 난 그냥 몇 가지 CSS를 설정하지 않지만 더 복잡한 변경하려면 무엇

jQuery(document).ready(function() { 
    if (jQuery('#bad-drifting li:has(em)')) { // .has('em') 
     jQuery('#bad-drifting').css({'color': 'red'}); 
     jQuery('#bad-drifting').css({'font-weight': 'bold'}); 
    } 
}); 

하지만 내가 할 수있는 물건을 수행하십시오 이것이 항상 진실을 돌려 보내는 까 왜 파악하십시오 ... 그것은 벌레 또는 나가는 무엇이 없는가? has이의 jQuery 객체를 반환하고 객체가 자바 스크립트에서 truthy 값이기 때문이다

답변

5

, 당신은 length 속성을 사용한다 :

당신은 length jQuery('#bad-drifting li:has(em)') 때문에 반환 항상있을 것입니다 jQuery를 개체에 대해 확인해야
if (jQuery('#bad-drifting').has('em').length) { 
+0

당신은 has() 함수가 true 또는 false를 반환한다고 생각할 것입니다. 감사합니다! – OZZIE

+0

예, 어느 것으로 읽을 수 있습니다. – undefined

+0

.has() 함수의 요점은 .children ('em')과 동일합니다. – OZZIE

1

진실.

if (jQuery('#bad-drifting em').length > 0) { 
    console.log('we have some errors'); 
} 
0
if (jQuery('#bad-drifting').has('em')[0]) { // do Stuff 
0

나는이 같은 일을 결국, 그렇지 않으면

if (jQuery('#bad-drifting li:has(em)').length > 0) { // There is at least one element 

는 항상 true가됩니다 무엇 때문에 jQuery 반환은 항상 truthy입니다.

0

이 jQuery를 "수집"의 길이를 확인하십시오 :

if (jQuery('#bad-drifting li:has(em)').length) { // .has('em')