0

我在更改元素的标签时遇到了一些问题。这就是我所拥有的。

<a id="title2" href="#" onclick="this.tagName = 'INPUT'">Click to change element tag.</a>

或者更长...

<a id="title" href="#" onclick="change_to_textfield()">Click to change element tag.</a>

function change_to_textfield() {
    document.getElementById('title').tagName = 'INPUT';
}

我没有收到任何错误消息,这看起来像是访问 tagName 属性的正确方法。这怎么行不通?

谢谢。

4

3 回答 3

2

tagName 是只读的 DOM 属性,请参阅规范:http ://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-104682815

如果您想将<a>标签转换为<input>标签,您将不得不努力创建一个新节点并替换旧节点。

额外的喋喋不休:使用像 jquery 这样的库,这相对容易完成:

function change_to_textfield() {
  var link = $("#title");
  var textField = $("<input type='text'>").val(link.text());
  link.replaceWith(textField);
}
于 2013-08-20T11:14:36.127 回答
1

TagName 是一个只读参数。您需要通过节点移除或添加来更改元素。您还可以通过在 outerHTML 中的替换来更改它(警告:性能下降)。

于 2013-08-20T11:13:46.097 回答
0

tagName只是一个字符串,您实际上不能用它更改元素的 HTML。不过会很好!

于 2013-08-20T11:13:56.470 回答