тип тега замены jQuery/javascript

Существует ли простой способ циклично выполниться через все теги TD и изменить их на th? (и т.д.).

Мой текущий подход должен был бы перенести их с th и затем удалить td, но затем я утрачиваю другие имущества и т.д.

21
задан Matrym 12 May 2010 в 01:52
поделиться

2 ответа

Совершенно не проверено, но попробую:

$("td").each(function(index) {
  var thisTD = this;
  var newElement = $("<th></th>");
  $.each(this.attributes, function(index) {
    $(newElement).attr(thisTD.attributes[index].name, thisTD.attributes[index].value);
  });
  $(this).after(newElement).remove();
});

Я смотрю и смотрю на это, и не могу придумать причину, по которой это не будет работать!

1) пройдитесь по каждому элементу td.
2) создайте новый элемент th
3) для каждого из этих элементов td переберите все его атрибуты.
4) добавьте этот атрибут и значение в новый элемент th
5) как только все атрибуты будут на месте, добавьте элемент в DOM сразу после td и удалите td

Edit: работает нормально: http://jsbin.com/uqofu3/edit

16
ответ дан 29 November 2019 в 20:12
поделиться

Это может сработать, но я не проверял это всесторонне:

var tds = document.getElementsByTagName("td");
while(tds[0]){
    var t = document.createElement("th");
    var a = tds[0].attributes;
    for(var i=0;i<a.length;i++) t.setAttribute(a[i].nodeName,a[i].nodeValue);
    t.innerHTML = tds[0].innerHTML;
    tds[0].parentNode.insertBefore(t,tds[0]);
    tds[0].parentNode.removeChild(tds[0]);
}

Надеюсь, это поможет в какой-то мере.

3
ответ дан 29 November 2019 в 20:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: