2010-04-13 12 views
9

मैं टैग तत्व, विशेषता नाम/मूल्य जोड़े और आंतरिक HTML सहित पूरे तत्व को मुद्रित करना चाहता हूं। मैं जावास्क्रिप्ट (jQuery) में यह कैसे कर सकता हूं?जावास्क्रिप्ट में संपूर्ण HTML तत्व को मुद्रित करने के लिए कैसे?

उदाहरण के लिए:

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

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

ध्यान दें कि लिंक के लिए तत्व outerHTML परिभाषित नहीं है!

उत्तर

6

this one, या this one जैसे बाहरी HTML jQuery प्लगइन का उपयोग करें।

+0

अरे, मैंने किया (http://dbj.org/dbj/?p = 9 1) लेकिन यह इतना अक्षम लगता है ... लेकिन मैं कुछ भी बेहतर नहीं सोच सकता, अभी भी? –

0

आप कुछ इस तरह कर सकते हैं:

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')); 
} 

आप "hasOwnProperty" परीक्षण या नहीं चाहते हैं या नहीं, मैं नहीं जानता।

2

यदि आप बाहरी एचटीएमएल नहीं कर सकते हैं, इसे क्लोन करें, एक नया div बनाएं, क्लोन को div में रखें, और कंटेनर के आंतरिक HTML को पकड़ें।

+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

आप कुछ इस तरह कर सकता है आप एक jQuery तत्व से एक पूरे टैग प्रिंट करना चाहते हैं:

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

alert(el[0].outerHTML); 
संबंधित मुद्दे