Изменить тип узла - PullRequest
       1

Изменить тип узла

7 голосов
/ 18 июля 2011

Используя jQuery, можно ли изменить все соответствующие элементы на другой тип?

Например, можно ли выбрать все теги a, $("a") и изменить их на input s?

Ответы [ 3 ]

15 голосов
/ 18 июля 2011

Изменение элемента A на элемент INPUT не меняет тип, оно меняет tagName .Согласно спецификации DOM 2 Core элемент tagName элемента доступен только для чтения, поэтому его нельзя установить.

Однако вы можете заменить элементдругой элемент, при условии, что он действителен в DOM.

12 голосов
/ 18 июля 2011

Нет, вы не можете изменить его, но вы можете заменить их новым элементом, используя метод replaceWith():

$("a").replaceWith("<input>");

Если есть какие-либо атрибуты, которые вы хотите сохранить, вам необходимо установить их вручную:

$("a").replaceWith(function() {
    return $("<input>", {
        class: this.className,
        value: this.innerHTML
    });
});
0 голосов
/ 18 июля 2011
$("a").each( function() {
    this.replaceWith( $("<input>").html( this.innerHTML() ) );
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...