2011-03-17 8 views
4

jQuery 무한 회전식 메뉴에서는 무한 효과를 내기 위해 .clone()을 사용합니다. 복제중인 코드에 HTML5 요소가 없으면이 방법이 효과적입니다. IE7과 IE8은 HTML5 Element-specific CSS 규칙을 복제 된 또는 그렇지 않으면 삽입 된 요소의 페이지로드 후 삽입하는 데 문제가 있습니다.jQuery 객체 배열을 HTML 문자열로 변환하는 방법

innerShiv JavaScript 플러그인은 IE7과 IE8이 적절한 CSS로 잘 렌더링되는 방식으로 요소를 삽입합니다.

innerShiv는 HTML 문자열을 매개 변수로 사용하지만 jQuery .clone() 메서드는 jQuery 개체의 배열을 반환합니다.

둘을 함께 사용하려면 .clone()의 출력을 innerShiv가 구문 분석 할 수있는 HTML 문자열로 변환해야합니다.

이 작업을 수행하는 방법에 대한 의견이 있으십니까?

+3

단지 ['.html 중에서()'(HTTP 전화 : //api.jquery.com/html/) 개체에? –

답변

8

HTML :

<p class="foo"><canvas class="bar"></canvas></p> 

자바 스크립트 : [Ref]

// grab the object, with HTML 5 element(s). 
var p = $('p'); 

// clone it 
var c = p.clone(); 

// grab the inner html (wrap it so we can get the HTML) 
var html = $('<div>').append(c).html(); 

// alert us of the contents 
alert(html); 

데모 :

http://jsfiddle.net/bradchristie/tDFYn/

+0

Brilliant! 이것은 완벽하게 작동했습니다! – Jazzerus

0

.clone().html();을 사용하면 개체가 문자열로 변환됩니다.) (실제로 @Jazzerus, 왜 사용 .clone : http://jsfiddle.net/9k2LS/

-edit-

재고 : 보세요? clone()을 사용하지 않고 .html()을 사용하면됩니다.

+0

'.clone()'이 없으면 .html()'은'.clone'이 현재의 객체와 조상을 복제하기 때문에 기술적으로하지 않습니다. '.html()'은 조상을위한 코드 일뿐입니다. –

관련 문제