Существует ли простой способ циклично выполниться через все теги TD и изменить их на th? (и т.д.).
Мой текущий подход должен был бы перенести их с th и затем удалить td, но затем я утрачиваю другие имущества и т.д.
Совершенно не проверено, но попробую:
$("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
Это может сработать, но я не проверял это всесторонне:
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]);
}
Надеюсь, это поможет в какой-то мере.