2010-12-08 9 views
2

유효한 jQuery 객체 여야하는 객체가 있습니다. FireBug에서 변수를 볼 때 기대할 수있는 모든 jQuery 함수가 포함되어 있습니다 (복제, 제거, 삭제 등). 그러나, 나는 유효한 함수로 html() 표시되지 않습니다 나는이 작업을 수행 할 때jQuery 객체 html()이 작동하지 않지만 innerHtml이 수행합니다

stringValue = myjQueryObject.html(); 

그것은 HTML을 말하고, 실패하는() 함수가 아닙니다. 나는 이런 식으로 뭔가 할 경우 :

stringValue = myjQueryObject[0].innerHTML; 

을 올바르게 개체, 마이너스 (내가 그냥 innerHtml을 얻는 방법으로보고, 기대) 부모 div의 텍스트를 다시 전달합니다. 내가 여기서 무엇을 놓치고 있니?

아래에 언급했듯이 이전에는 유효한 jQuery 객체를 반환하고 잘못 업데이트 된 myjQueryObject를 생성하는 외부 라이브러리였습니다. 후손을 위하여, 나는이 null 또는 정의되지 않은 반환하지 않도록 외부 라이브러리가 올바른 jQuery를 개체를 반환하는지 확인하기 위해 내 단위 테스트를 업데이트했습니다

myjQueryObject.jquery 

감사합니다 모두! 오늘 아침 갑자기 코드가 깨 졌을 때 약간의 프리 커크 아웃이있었습니다.

+0

jQuerys'.html()'도'.innerHTML' 속성을 사용하기 때문에 꽤 들리지는 않습니다. myjQueryObject와 마크 업의 정의를 제공해야한다. http://www.jsfiddle.net/4yUqL/14/ – jAndy

+0

"myjQueryObject"가 jQuery 객체라고 생각하지 않습니다. jQuery 객체에는 html()이 있지만 innerHtml() 메소드가 없습니다. 너는 어떻게 지어낸거야? – Andrey

+0

@Andrey - OP는 'innerHTML' (거의)을 올바르게 사용하도록 질문을 업데이트했습니다. @user - 당신은'innerHTML' 대신'innerHtml'을 가지고 있습니다. 실제 코드를 게시하십시오. – user113716

답변

2

jQuery 객체 프로토 타입을 수정하거나 다른 라이브러리를로드했습니다.

이 같은 jQuery를 버전 개체 및 테스트를 타고 :

alert(myjQueryObject.jquery); // should give the jQuery version number 

편집 :

는 또한 당신이 removeAt 방법이 있다고 언급. removeAttr()을 제외하고 jQuery는 그 중 하나가 없습니다.

+0

최상의 답변이 여러 개인 경우 가장 좋은 대답을 선택하기가 어렵습니다. 지금 단위 테스트에서 이것을 사용하고 있기 때문에 최선의 답변으로 표시했습니다. 다른 사람들에게 jQuery 객체가 아니라고 말했습니다. – user500038

+0

나만 제외하고는 누구나 :) 아마도 나는 그걸 정확하게 말하지 않았지만, 나는 당신이 잘못 객체를 설정하고 jQ 객체가 아니라 JS 객체를 생성했을 수도 있다는 것을 암시한다고 생각한다. 다행 이네. – Dutchie432

+0

@Dutchie - 노력에 +1을 드리겠습니다. : O) – user113716

2

jquery 개체입니까? 다시 $()에 포장하고 .html()이 있어야합니다.

[0].innerHTML 또는 .get(0).innerHTML이며, innerHTML은 메소드가 아닌 속성입니다.

alert(jQuery == $)을 사용하여 jquery가 있는지 확인하고 .jquery 속성을 확인할 수 있습니다.

+0

OP는 그것이 작동하는 부분이라고 말하고 있지만, .html()은 그렇지 않습니다. – user113716

+0

예, 기술적으로는 .innerHTML()이 작동하지 않습니다. 그는 방금 변경했습니다. 정확한 정보가 필요합니다. –

+1

innerHTML이 아니라 innerHTML()이 내 파트의 오타였습니다. – user500038

1

그건 이상합니다. 시도해보십시오 $(myjQueryObject).html();. 그것이 작동한다면, 객체는 실제로 jQuery 노드가 아닙니다.

개체가 html() 메서드를 잃어버린 이유를 여전히 알 수없는 경우 개체를 만드는 코드를 게시하십시오. 그러면 우리가 도울 수 있습니다.

1

어떻게 myjQueryObject를 설정하고 있습니까?

<div id='myElement'></div> 

//Good Javascript, Incorrect jQuery 
myjQueryObject = document.getElementById('myElement'); 
myjQueryObject.innerHTML = '<b>My HTML Here</b>'; 

//Correct jQuery 
myjQueryObject = $('#myElement'); 
myjQueryObject.html('<b>My HTML Here</b>'); 

//Compact Version of Correct jQuery 
$('#myElement').html('<b>My HTML Here</b>'); 
관련 문제