2013-01-25 19 views
0

是否有簡單的任何方式來獲取元素的JavaScript開始標記爲字符串? 假設我有這是一個變量的HTML元素的DOM節點,我希望寫類似的東西:如何在javascript中獲取元素的完整開始標記(不僅是tagName)?

var tagName = element.tagName; //Works 
var startingTag = element.startingTag; // Is there any way? 
var startingTag = getStartingTag(element); // Or do I have to write my own function? 

THX答案

例如,這是一個開始標記,我想進入的字符串:

<Table class="anyClass" width="100" ... > 

其中的標記名只給出了這樣: 「表」

+0

是否有理由需要完整的開始標籤?獲取屬性?也許有不同的方式來完成你需要的東西 – Ian

+0

我需要開始標籤作爲文本信息顯示在用戶界面中。我知道如何使用DOM獲取特定屬性 –

+0

您可以獲取元素的所有屬性,遍歷它們(及其值)並手動構建字符串。我不知道你的情況會有多困難。應該放在你的衚衕裏。 –

回答

1

嗯,你可以這樣做:

var elStr = element.outerHTML 
    ,startTag = elStr.substr(0,elStr.indexOf('>')+1); 

或者使用element.attributes如果您需要了解屬性

+0

Thx :-)。 outerHtml以某種方式超出了我的範圍,因爲WebStorm intellisense只給了我innerHtml,這絕對不適用於此任務。 –

1

信息您可以通過屬性環路和追加他們一些字符串。

function getStartingTag(elem) 
    var str = '', 
     attr = elem.attributes, 
     value; 

    // Beginning of tag. toLowerCase() for a cleaner string. 
    str += '<' + elem.nodeName.toLowerCase() + ' '; 

    for (var i = 0, l = attr.length; i < l; i++) { 

     // Safety check. 
     value = attr[i].nodeValue.replace('"', '\\"'); 

     // Append the name + value of the attribute. 
     str += attr[i].nodeName + '="' + attr[i].nodeValue + '" '; 
    } 
    str += '>'; 

    return str; 
} 
相關問題