Изменить имя узла элемента? - PullRequest
0 голосов
/ 21 мая 2010

Можно ли изменить имя узла элемента в GWT? Я имею в виду что-то вроде этого:

HTML h = new HTML();
h.getElement().setNodeName("mydiv")

пока нет метода setNodeName() для Element.

Я бы хотел получить <mydiv>some contents</mydiv> вместо тега по умолчанию <div>some contents</div>

Спасибо за любые подсказки.

Ответы [ 2 ]

2 голосов
/ 21 мая 2010

Вы не можете изменить имя узла элемента виджета HTML. Тем не менее, вы можете создать свой собственный тег с Document.get().createElement("mydiv") и использовать его для создания нового Widget путем расширения Composite. Однако я не уверен, почему вы хотите сделать это, потому что добавление новых тегов в DOM и, следовательно, расширение HTML не звучит так, как вам нужно. Установка содержимого в этом теге невозможна с помощью таких методов, как innerText, поскольку они доступны только для допустимых тегов.

1 голос
/ 13 октября 2011

изменить имя тега при сохранении содержимого и атрибутов

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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...