Как изменить тип html элемента?

130
14 сентября 2019, 22:30

Подскажите, пожалуйста, как изменить тип элемента c 'input' на 'textarea' с определенным классом, но чтобы другие 'textarea' или 'input' при этом не были бы изменены, используя jQuery.

Было:

<input class="field" id="ex" name="ex" type="text" value="">

Стало:

<textarea class="field" id="ex" name="ex" type="text" value="">
Answer 1

function changeTagName(el, newTagName) { 
  var n = document.createElement(newTagName); 
  var attr = el.attributes; 
  for (var i = 0, len = attr.length; i < len; ++i) { 
    n.setAttribute(attr[i].name, attr[i].value); 
  } 
  n.innerHTML = el.innerHTML; 
  el.parentNode.replaceChild(n, el); 
} 
 
changeTagName(document.getElementById('ex'), 'textarea');
<input class="field" id="ex" name="ex" type="text" value="" />

UPD.

$("#ex").each(function (o, elt) { 
  var newElt = $("<textarea />"); 
  Array.prototype.slice.call(elt.attributes).forEach(function(a) { 
    newElt.attr(a.name, a.value); 
  }); 
  $(elt).wrapInner(newElt).children(0).unwrap(); 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
<input class="field" id="ex" name="ex" type="text" value="">

READ ALSO
Как сделать проверку на свободное время для записи в Yii2?

Как сделать проверку на свободное время для записи в Yii2?

разрабатываю систему для записи съемок , хотелось бы узнать как проверять на свободное время человека для записи, день и время, (аналогия...

123
Расширение таблицы или связь один ко одному [закрыт]

Расширение таблицы или связь один ко одному [закрыт]

Есть таблица user_card, хранит данные о пользователях сайтаЕсть сотрудники, которые как и остальные пользователи регистрируются на сайте и попадают...

110
Не работает required в форме

Не работает required в форме

Все поля имеют атрибут required, обязательное поле, но даже если вообще ничего не заполнять, все равно идет отправка

151