javascript - 使用 onclick 设置 tagName 属性时出现问题

标签 javascript

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

<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 属性的正确方法。这怎么行不通呢?

谢谢。

最佳答案

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

关于javascript - 使用 onclick 设置 tagName 属性时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18333514/

相关文章:

javascript - 错误: Files glob patterns specified did not match any files

javascript - 是否可以使用 Spring-WebSockets 通过 WebSockets 通过 STOMP 发送二进制数据?

javascript - 使用橡皮擦时保留背景图像

javascript - 用特殊字符替换空字符串的字符串

javascript - 在 Express 4 和 express-generator's/bin/www 中使用 socket.io

javascript - 从 html 表单中检索数据

javascript - Discord bot TypeError : client. guilds.forEach 不是函数

javascript - 即使在分派(dispatch)操作并接收有效负载后,也不会调用Reducer

javascript - 当我使用 jQuery ajax 时,php 不记得变量

javascript - 动态创建整个页面,包括脚本和样式