是否可以在GWT中更改元素的節點名稱?我的意思是這樣的:更改元素的節點名稱?
HTML h = new HTML();
h.getElement().setNodeName("mydiv")
雖然對Element
沒有setNodeName()
方法。
我想獲得<mydiv>some contents</mydiv>
而不是默認標籤的<div>some contents</div>
感謝您的任何提示。
是否可以在GWT中更改元素的節點名稱?我的意思是這樣的:更改元素的節點名稱?
HTML h = new HTML();
h.getElement().setNodeName("mydiv")
雖然對Element
沒有setNodeName()
方法。
我想獲得<mydiv>some contents</mydiv>
而不是默認標籤的<div>some contents</div>
感謝您的任何提示。
您不能更改HTML
小部件的元素節點名稱。但是,您可以使用Document.get().createElement("mydiv")
創建自己的標籤,然後通過擴展Composite
來創建新的Widget
。但是,我不確定爲什麼要這樣做,因爲向DOM添加新標籤並從而擴展HTML聽起來並不是你應該想要的。通過innerText
等方法設置此標籤中的內容是不可能的,因爲它們僅適用於有效標籤。
改變標籤名稱,同時保持內容和屬性
function changeTagName(elm,new_tag_name){
var newElm = document.createElement(new_tag_name)
var atr = elm.attributes;
for(var i=0;i<atr.length;i++){ // copy all atributtes
newElm.setAttribute(atr[i].name,atr[i].value)
}
document.body.insertBefore(newElm,elm)
newElm.innerHTML=elm.innerHTML; //copy the content
elm.parentNode.removeChild(elm) // remove original
}
例如:
<span id='sp1' class='cl1 cl2'> some t e x t with (\n) gaps .... and etc</span>
changeTagName(document.getElementById('sp1'),'pre');