2015-02-04 3 views
0

요소가있는 경우 특정 값을 요소에 설정해야합니다.JQuery에 요소가 있는지 확인하려면 어떻게해야합니까?

var a = jQuery("#abc"); 
if(a) { 
    a.val("something"); 
} 

이렇게하려면 요소가 종료인지 확인하려면 a.length을 확인해야합니다.

요소가 있는지 확인하지 않고 값을 직접 설정하면 어떻게됩니까?

내가 할 경우 요소가 존재하지 않을 때 내가 크롬에 어떤 오류가 발생하지 않는

jQuery("#abc").val("dfd"); 

다음, 때문에. 그럼, 이렇게 계속 사용할 수 있습니까?

또는

해결 방법은 무엇입니까?

감사합니다.

+2

확인하지 않아도됩니다. 빈 jquery 객체를 통해'.val()'을 호출하면 우리에게 해를 끼치 지 않을 것이기 때문이다. –

+0

나는 모두가 OP가 말한 부분을 놓치고 있다고 생각한다. "이것을 위해서, 요소를 확인하기 위해 길이를 체크해야한다." 그는'.length'에 대해 이미 알고 있으므로 다시 제안 할 필요가 없습니다. – DontVoteMeDown

답변

2

요소가 있는지 확인하지 않고 직접 값을 설정하면 어떻게됩니까?

없음. 빈 jQuery 객체 (set)에서 jQuery 메서드를 호출해도 문제가 발생하지 않으며 아무 것도 수행하지 않습니다. 이것은 jQuery에서 사용되는 집합 기반 개념에 대한 훌륭한 점 중 하나입니다. 동일한 DOM 코드 (document.getElementById("abc").value = "something";) 이 오류를 발생 시키지만 jQuery 버전은 그렇지 않습니다. JQuery와 세트가 비어있는 경우

특히, :

  • 이 (당신의 val 전화 등) 세터 방법을 요구하는 어떤 조합이된다 없습니다.

  • 게터 방법 예를 들어   —, var x = $("#foo").val();   — 반환 값 undefined 호출.

  • 통과 방법 예를 들어   —,   — var divs = $("#foo).find("div"); 당신에게 새로운 하늘 세트를 제공 호출.

당신은 당신이 실제로 관심이있는 경우 (당신이 말한, 또는 if (a[0])if (a.length) 사용) 확인해야합니다.

jQuery("#abc").val("dfd");

요소가 존재하지 않을 때 내가 크롬에 어떤 오류가 발생하지 않습니다. 그럼, 이렇게 계속 사용할 수 있습니까?

넵.

0

jQuery의 val() 메서드는 각 일치하는 요소의 값을 설정 (또는 가져 오기) 만합니다. 일치하는 요소가 없으면 설정 (또는 가져 오기) 할 값이 없습니다.요소가 먼저 존재하는지 확인할 필요가 없습니다. jQuery's val() documentation 가입일

:

설명 : 정합 소자들의 세트의 각 요소의 값을 설정한다.

일치하는 요소가 없으면 아무 것도 발생하지 않습니다.

jQuery("#abc").length > 0 
0

함께보십시오. JQuery는 셀렉터가 찾은 모든 엘리먼트에 대해서만 함수를 실행한다. 아무 것도 없다면 아무것도 수행하지 않는다. 오류가 없습니다.

관련 문제