2013-03-27 2 views
0

모든 제목에서 h2 태그를 사용하는 웹 페이지에서 작업하고 있습니다. 첫 번째 제목을 h1을 사용하도록 변환하고 싶습니다. 내가 페이지를 다시로드 할 때첫 번째 h2 태그를 h1로 변환하려고 할 때 jQuery [object Object] 오류가 발생했습니다.

<script type="text/javascript"> 
var myHeader = $('h2:first'); 
var myHeaderHTML = myHeader.html(); 

alert("myHeader: " + myHeader); 
alert("myHeaderHTML: " + myHeaderHTML); 

$(document).ready(function() { 
$(myHeader).replaceWith("<h1>" + $(myHeaderHTML) + "</h1>"); 
}); 
</script> 

는 그러나, 나는 H1 태그 내에 싸서 [개체 개체] 오류 :

내가 사용하고 코드입니다. 위에서 볼 수 있듯이 변수에 어떤 값이 들어 있는지 알 수 있도록 두 개의 경고를 코드에 넣었으며 [object Object]가 포함 된 myHeader 변수입니다. myHeaderHTML 변수에는 예상대로 포함되어 있습니다.

어떻게 해결할 수 있습니까?

답변

4

이것은 잘못된 것입니다 :

"<h1>" + $(myHeaderHTML) + "</h1>" 

당신은 문자열 "[Object object]"에 개체를 변환하고 연결을 수행하는 객체에 문자열을 추가하고 있습니다.

그것은해야한다 : $(myHeaderHTML)으로

"<h1>" + myHeaderHTML + "</h1>" 
2

jquery를 다시 호출 할 필요가 없습니다.

$(myHeader).replaceWith("<h1>" + myHeaderHTML + "</h1>"); 
1

이 다른 문자열 ("<h1>")와 연결하면 [object Object]를 직렬화하는 jQuery를 객체의 HTML 문자열을 포장하고 있습니다.

사용

$(document).ready(function() { 

    var myHeader = $('h2:first'); 
    var myHeaderHTML = myHeader.html(); 

    alert("myHeader: " + myHeader); // alerts [object Object] as well 
    alert("myHeaderHTML: " + myHeaderHTML); 

    myHeader.replaceWith("<h1>" + myHeaderHTML + "</h1>"); 
}); 
0

여기에 문자열로 밖으로 HTML 내용을 넣어 필요로하지 않는이 할 수있는 가능성이 더 안전한 방법 :

<script type="text/javascript"> 
    $(function(){ 
    $('h2:first').wrapInner('<h1>').find('h1').unwrap(); 
    }); 
</script> 
관련 문제