更改节点类型

esq*_*qew 8 html javascript jquery dom

使用jQuery,是否可以将所有匹配的元素更改为其他类型?

例如,我可以选择所有a标签$("a"),并将它们更改为inputs吗?

Rob*_*obG 15

将A元素更改为INPUT元素不会更改类型,而是更改tagName.根据DOM 2 Core规范,元素的tagName是只读的,所以不,你不能设置它.

但是,您可以使用不同的元素替换元素,前提是它在DOM中有效.

  • +1指出_why_是不可能的. (4认同)

use*_*716 13

不,您实际上无法更改它,但您可以使用以下replaceWith()方法将其替换为新元素:

$("a").replaceWith("<input>");
Run Code Online (Sandbox Code Playgroud)

如果您要保留任何属性,则需要手动设置它们:

$("a").replaceWith(function() {
    return $("<input>", {
        class: this.className,
        value: this.innerHTML
    });
});
Run Code Online (Sandbox Code Playgroud)