2010-04-13 6 views
9

태그 이름, 속성 이름/값 쌍 및 innerHTML을 포함하여 전체 요소를 인쇄하려고합니다. JavaScript (jQuery)에서 어떻게 할 수 있습니까? 예를 들어JavaScript에서 전체 HTML 요소를 인쇄하는 방법은 무엇입니까?

: 링크 요소 outerHTML에 정의되지 않은 것을

var elArr = document.getElementsByTagName('link'); 
alert(elArr[0].printEntireElement()); 

//expected output might be 
<link href="/css/common.css" rel="stylesheet" type="text/css">` 

주의!

답변

6

this one 또는 this one과 같은 outerHTML jQuery 플러그인을 사용하십시오.

+0

젠장, 나는 (그것을했다 http://dbj.org/dbj/?p = 91)하지만 비효율적 인 것처럼 보입니다 ...하지만 더 나은 것을 생각할 수는 없습니까? –

0

당신은 같은 것을 할 수 있습니다

는 "hasOwnProperty"테스트 여부를할지 여부
function dump(element) { 
    var a = ["Element dump:"]; 
    for (var k in element) { 
    if (element.hasOwnProperty(k)) { 
     a.push(k + ": " + element[k]); 
    } 
    } 
    a.push("HTML: " + element.innerHTML); 
    alert(a.join('\n')); 
} 

, 나도 몰라.

2

outerHtml을 수행 할 수 없으면 복제하고 새 div를 만든 다음 div의 복제본을 배치하고 컨테이너의 innerHTML을 가져옵니다. 당신이 jQuery를 요소에서 전체 태그를 인쇄하려면

+0

jquery에서 div를 만들려면 http://stackoverflow.com/questions/867916/creating-a-div-element-in-jquery를 참조하십시오. :) – Steropes

1
document.getHTML= function(who){ 
    var txt, ax, el= document.createElement("div"); 
    el.appendChild(who.cloneNode(false)); 
    txt= el.innerHTML;  
    ax= txt.indexOf('>')+1; 
    txt= txt.substring(0, ax)+who.innerHTML+ txt.substring(ax); 
    el= null; 
    return txt.replace(/>/g,'>\n'); 
} 
0

당신이 이런 식으로 뭔가를 할 수 :

var el = $('<div id="my_div">test div 123</div>'); 

alert(el[0].outerHTML); 
관련 문제