2010-01-12 2 views
2

if 문을 사용하여 wrapped sets 크기가 0 인 경우 jQuery 또는 javascript에서 모든 연산을 무시하는 방법이 있습니까?jQuery : "if"없이 조건부로 실행

menu.find('a[href="#add"]'). {code that should execute only if size()>0}; 

는 내가 보통이

var m = menu.find('a[href="#add"]'); 

if m.size()>0 { do something } 

같은이 일의 짧은 방법이 작업을 수행해야 guees?

편집 : 전체 코드

menu.find('a[href="#add"]').attr("href","#add-metaobject")[0].innerText = "Add Object"; 
+0

* 어떤 작업을 * 어떻게합니까? – Gumbo

+0

Bleh, innerText를 사용하지 마십시오! 선택을 위해 jQuery를 사용하고 있으므로 계속 사용하십시오! $ (this) .html ('Add Object')와 같은 것을 사용하십시오; – Parrots

+0

javascript까지 제안 해 주셔서 감사합니다. 저는 전조등 스위치를 찾는 사람과 같습니다. – epitka

답변

5

선택기 0을 발견하면, 그것을 다음과 중요하지 않습니다.

$(".nonExistentElement").css("color","red"); // nothing will be red 

너무

$(".nonExistentElement").each(function(){ 
    World.technology.push(new PerpetualMotionMachine); 
    // too bad this block will never take place 
}); 

당신이 삼항 연산자를 사용할 수 $.each()의 경우,하지만 정말 또 다른 조건 검사입니다 :

$("#someEl").length ? alert("found") : alert("not found") ; 
+0

이것은 체인화 된 작업에는 해당되지만 임의 코드는 동일하게 작동하지 않습니다. – Joel

+0

그는 쇠사슬로 묶인 예제만을 보여주었습니다. – Sampson

+0

요소를 찾을 수 없어 업데이트 된 코드가 실패합니다. – epitka

2

편집 :

원본 질문을 이해하지 못했습니다. 당신이 발견 각각의 객체에서 작동하는 경우

menu.find('a[href="#add"]').attr("href","#add-metaobject").find(":first").text("Add Object"); 
+1

이것은'... .size()'와 동일합니다. – Gumbo

+0

그건 내가하고 싶지 않은 것이고, ifs 묶음으로 포장하고 싶지는 않습니다. 자바 스크립트에서 null 전파가 필요하다고 생각합니다. – epitka

0

, 당신은 어떤 항목을 찾을 수 없습니다 경우 실행되지 않습니다 .each() 방법을 사용할 수 있습니다 : 조나단에서 알 수 있듯이,하지만 샘플 코드에 당신은 작업을 체인 단지 수 있습니다 :

menu.find('a[href="#add"]').each(function() { 
    // do stuff... 
}); 
관련 문제