Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.07.2015, 08:41
Аспирант
Отправить личное сообщение для kolhoz Посмотреть профиль Найти все сообщения от kolhoz
 
Регистрация: 04.03.2015
Сообщений: 92

Изменить таблицу
Привет. На сайте есть куча таблиц такого типа:
<table style="border-collapse: collapse; border: none; width: 487px;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 1pt;">
<td >
<p><span >Name of the School</span></p>
</td>
<td >
<p><em><span >Location</span></em></p>
</td>
<td >
<p ><span >Type</span></p>
</td>
<td >
<p ><span >Age</span></p>
</td>
<td >
<p ><span >Gender </span></p>
</td>
</tr>
<tr style="height: 1pt;">
<td >
<p ><span >Abacus College</span></p>
</td>
<td >
<p><em><span >Oxford, Oxfordshire, SE</span></em></p>
</td>
<td >
<p ><span >Ind</span></p>
</td>
<td >
<p ><span >14-23</span></p>
</td>
<td >
<p ><span >Co</span></p>
</td>
</tr>
<tr style="height: 1pt;">
<td >
<p ><span >Abberley Hall</span></p>
</td>
<td >
<p><em><span >&nbsp;Worcester, Worcestershire, WM</span></em></p>
</td>
<td >
<p ><span >Ind</span></p>
</td>
<td >
<p ><span >2-13</span></p>
</td>
<td >
<p ><span >Co</span></p>
</td>
</tr>

</tbody>
</table>


Первая строка tr во всех таблицах как правило, содержат названия колонок.

Можно ли первую строку привести к такому виду?:

<thead>
  <tr>
    <th>Name of the School</th>
    <th>Location</th>
    <th>Type</th>
    <th>Age</th>
    <th>Gender</th> 
  </tr>
  </thead>


а потом чтобы начиналось тело таблицы

<tbody>
<tr></tr>
<tr></tr>
<tr></tr>
</tbody>
Ответить с цитированием
  #2 (permalink)  
Старый 06.07.2015, 09:09
Аспирант
Отправить личное сообщение для kolhoz Посмотреть профиль Найти все сообщения от kolhoz
 
Регистрация: 04.03.2015
Сообщений: 92

Понял как заменить в первой строке все td на th.
<script>
$(document).ready(function(){

$('td').each(function(){
if($(this).parent('tr').index() == 0)
{   $(this).replaceWith('<th>' +
$(this).text() + '</th>'); } });

});
</script>


А как теперь обрамить первую строку <tr></tr> в теги <thead></thead> и все это вставить перед тегом <tbody></tbody>
Ответить с цитированием
  #3 (permalink)  
Старый 06.07.2015, 09:25
Аспирант
Отправить личное сообщение для kolhoz Посмотреть профиль Найти все сообщения от kolhoz
 
Регистрация: 04.03.2015
Сообщений: 92

Тут привожу код, в котором в первой строке таблицы td заменены на th, а также первая строка tr обрамлена в тег thead. Подскажите как теперь тег <thead></thead> со всем содержимым вынести за тег <tbody> ??

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title></title>
	<link rel="stylesheet" href="">
	<script src="jquery-2.1.4.min.js"></script>
<script>
$(document).ready(function(){

$('td').each(function(){
if($(this).parent('tr').index() == 0)
{   $(this).replaceWith('<th>' +
$(this).text() + '</th>'); } });

});
</script>




</head>
<body>

<table>
<tbody>

<tr>
<td><p><span>Name of the School</span></p></td>
<td><p><span>Location</span></p></td>
<td><p><span>Type</span></p></td>
<td><p><span>Age</span></p></td>
<td><p><span>Gender </span></p></td>
</tr>

<tr>
<td><p><span>Abacus College</span></p></td>
<td><p><span>Oxford, Oxfordshire, SE</span></p></td>
<td><p><span>Ind</span></p></td>
<td><p><span>14-23</span></p></td>
<td><p><span>Co</span></p></td>
</tr>

<tr>
<td><p><span>Abberley Hall</span></p></td>
<td><p><span>Worcester, Worcestershire, WM</span></p></td>
<td><p><span>Ind</span></p></td>
<td><p><span>2-13</span></p></td>
<td><p><span>Co</span></p></td>
</tr>

</tbody>
</table>

<script>
$('table tr:first').each(function() {
     $(this).replaceWith('<thead>' + $(this).html() + '</thead>');
 });
</script>

</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 06.07.2015, 09:28
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

А по какой причине таблица не отдается сервером с уже необходимой структурой?
Ответить с цитированием
  #5 (permalink)  
Старый 06.07.2015, 09:30
Аспирант
Отправить личное сообщение для kolhoz Посмотреть профиль Найти все сообщения от kolhoz
 
Регистрация: 04.03.2015
Сообщений: 92

Не знаю, сайт был сделан не мной, я его пока обслуживаю, а на сайте куча таблиц созданных по формату, указанным мной в первом посте.
Ответить с цитированием
  #6 (permalink)  
Старый 06.07.2015, 09:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

kolhoz,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
</script>
  <script>
$(function() {
    var tables = $("table");
    tables.each(function(indx, table) {
        var tr = $("tr:first", table),
            thead = $("<thead/>").append(tr);
        $("td", tr).each(function(indx, td) {
            $(td).replaceWith($("<th/>", {
                text: $(td).text()
            }))
        });
        $(table).prepend(thead)
    })
  });
  </script>
</head>

<body>
<table>
<tbody>

<tr>
<td><p><span>Name of the School</span></p></td>
<td><p><span>Location</span></p></td>
<td><p><span>Type</span></p></td>
<td><p><span>Age</span></p></td>
<td><p><span>Gender </span></p></td>
</tr>

<tr>
<td><p><span>Abacus College</span></p></td>
<td><p><span>Oxford, Oxfordshire, SE</span></p></td>
<td><p><span>Ind</span></p></td>
<td><p><span>14-23</span></p></td>
<td><p><span>Co</span></p></td>
</tr>

<tr>
<td><p><span>Abberley Hall</span></p></td>
<td><p><span>Worcester, Worcestershire, WM</span></p></td>
<td><p><span>Ind</span></p></td>
<td><p><span>2-13</span></p></td>
<td><p><span>Co</span></p></td>
</tr>

</tbody>
</table>

  <table style="border-collapse: collapse; border: none; width: 487px;" border="1" cellspacing="0"
  cellpadding="0">
    <tbody>
      <tr style="height: 1pt;">
        <td>
          <p><span>Name of the School</span></p>
        </td>

        <td>
          <p><em><span>Location</span></em></p>
        </td>

        <td>
          <p><span>Type</span></p>
        </td>

        <td>
          <p><span>Age</span></p>
        </td>

        <td>
          <p><span>Gender</span></p>
        </td>
      </tr>

      <tr style="height: 1pt;">
        <td>
          <p><span>Abacus College</span></p>
        </td>

        <td>
          <p><em><span>Oxford, Oxfordshire, SE</span></em></p>
        </td>

        <td>
          <p><span>Ind</span></p>
        </td>

        <td>
          <p><span>14-23</span></p>
        </td>

        <td>
          <p><span>Co</span></p>
        </td>
      </tr>

      <tr style="height: 1pt;">
        <td>
          <p><span>Abberley Hall</span></p>
        </td>

        <td>
          <p><em><span> Worcester, Worcestershire, WM</span></em></p>
        </td>

        <td>
          <p><span>Ind</span></p>
        </td>

        <td>
          <p><span>2-13</span></p>
        </td>

        <td>
          <p><span>Co</span></p>
        </td>
      </tr>
    </tbody>
  </table>
</body>
</html>

Последний раз редактировалось рони, 06.07.2015 в 09:37.
Ответить с цитированием
  #7 (permalink)  
Старый 06.07.2015, 09:35
Аспирант
Отправить личное сообщение для kolhoz Посмотреть профиль Найти все сообщения от kolhoz
 
Регистрация: 04.03.2015
Сообщений: 92

Спасибо. А можете пояснить код, какая строка что делает. Чтобы для себя я знал
Ответить с цитированием
  #8 (permalink)  
Старый 06.07.2015, 09:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

kolhoz,
$(function() {
    var tables = $("table");// все таблицы
    tables.each(function(indx, table) { //цикл по таблицам
        var tr = $("tr:first", table), //нашли первую строку в таблице
            thead = $("<thead/>").append(tr); //создали элемент thead перенесли в него первую строку
        $("td", tr).each(function(indx, td) {//нашли все ячейки в первой строке
            $(td).replaceWith($("<th/>", { // заменили  в цикле на th
                text: $(td).text() // + текст самой ячейки (если нужны теги span, p  то заменить на  html : $(td).html() )
            }))
        });
        $(table).prepend(thead)  //thead вставить в начало таблицы
    })//обрабатываем  следущую таблицу
  });
Ответить с цитированием
  #9 (permalink)  
Старый 06.07.2015, 09:54
Аспирант
Отправить личное сообщение для kolhoz Посмотреть профиль Найти все сообщения от kolhoz
 
Регистрация: 04.03.2015
Сообщений: 92

Спасибо
Ответить с цитированием
  #10 (permalink)  
Старый 06.07.2015, 10:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от kolhoz
Не знаю, сайт был сделан не мной, я его пока обслуживаю, а на сайте куча таблиц созданных по формату,
И что проблематично найти место, где либо описывается их шаблон, либо вывод их и внести изменения? Это какой-то абсурд отдавать клиенту html-код, который он еще должен приводить к нужному виду.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить класс родительского элемента STyLe Общие вопросы Javascript 1 29.05.2014 20:21
Как изменить цвет и размер шрифта в Java savas332 Серверные языки и технологии 3 09.01.2014 17:02
Код для преобразования введенных данных в таблицу 500р saves7 Работа 13 07.08.2013 14:50
как изменить css свойсво нескольких елементов? IIIgun Общие вопросы Javascript 17 12.08.2011 12:20
Как можно изменить URL в адресной строке браузера? балерун Events/DOM/Window 12 17.11.2009 13:08