2011-02-22 7 views
2

은 내가 QUnit 테스트 스위트를 가지고 ($(document).ready()에 등록 된 후 실행되는)는 QUnit 테스트 내부JQuery .html()이 null을 반환하는 이유는 무엇입니까?

$('#idForElement').html(); 

를 호출하고 있지만,이 기능은 크롬, 파이어 폭스와 IE에서 null 반환합니다.

Firefox의 Firebug 스크립트 탭에서 코드를 감시 식으로 추가하여 예상되는 문자열을 얻을 수 있으며 페이지 및 Firebug의 HTML 탭에 HTML 요소가 표시되는 것을 볼 수 있습니다. . 나는 http://api.jquery.com/html/ 읽은

가, 나는 새로운 var, initalised 문자열로이 할당 한 변수로 $('#idForElement');의 결과를 놓고 그에 .html()라고, 그 브라우저에서 경고를했습니다.

이 기능을 사용하려면 다음 단계는 무엇입니까?

+1

'var foo = $ ("# idForElement");가 실제로 찾고있는 DOM 노드를 당겼 음을 확인 했습니까? '.html()'은 요소의 innerHtml을 가져 오므로 노드에 아무것도 포함되어 있지 않으면 아무 것도 얻을 수 없다는 것을 명심하십시오. –

+0

필자는 성공적으로'foo'에'.append'를했다. – StuperUser

답변

2

루키 오류.

$('#idForElement')을 호출했지만 var를 $ ('idForElement')로 설정했습니다.

빈 랩핑 된 세트에 추가 할 수 있습니다.

4

이 기능은 사용자가이 기능을 호출 할 때 달라질 수 있습니다. document.ready 이벤트 전에이 작업을 수행하면 해당 요소가 아직 존재하지 않을 수 있습니다. 다음과 같이 코드를 래핑 해보세요.

$(document).ready(function() { 
    //your code goes here 
}); 
+1

준비된 블록 안에 등록 된 QUnit 테스트 안에 있는데, 그렇게하지 않습니다. – StuperUser

관련 문제