Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   jq выбор элементов межу двумя другими (https://javascript.ru/forum/misc/41360-jq-vybor-ehlementov-mezhu-dvumya-drugimi.html)

diakon 10.09.2013 13:24

jq выбор элементов межу двумя другими
 
Добрый день. Есть такой вопрос. Вот существует таблица такого, напримр вида:
<td id="id_td_table1" rowspan="3">Блок 1</td>
<tr>Текст1</tr>
<tr>Текст2</tr>
<tr>Текст3</tr>
<td id="id_td_table2" rowspan="3">Блок 2</td>


Вот как получить колличество эллементов <tr> между id="id_td_table1" и "id_td_table2" ?
Спасибо всем, кто решит помочь!

danik.js 10.09.2013 13:45

У тебя некорректная разметка. Любой td должен быть внутри tr, а tr внутри table или tfoot/thead/tbody

diakon 10.09.2013 13:48

Цитата:

Сообщение от danik.js (Сообщение 271700)
У тебя некорректная разметка. Любой td должен быть внутри tr, а tr внутри table или tfoot/thead/tbody

Разметка вообще швах и она не моя. Но поменять ее нельзя - долго вдаваться в подобности. Надо каким нить хреном jsом получить <tr>...

ruslan_mart 10.09.2013 13:54

$('#id_td_table1').nextAll('tr');


Или просто:
$('#id_td_table1').next();

danik.js 10.09.2013 14:11

Ruslan_xDD, следом за td#id_td_table1 не будет ни одного tr. Причину обозначил выше.

ruslan_mart 10.09.2013 14:24

danik.js, точно. :)

Тогда:
$('#id_td_table1').parent().nextAll('tr').find('td');


Если я не ошибаюсь, то браузер должен всё это преобразовать в:
<table>
   <tbody>
      <tr>
         <td id="id_td_table1" rowspan="3">Блок 1</td>
      </tr>
      <tr>
         <td>Текст1</td>
      </tr>
      <tr>
         <td>Текст2</td>
      </tr>
      <tr>
         <td>Текст3</td>
      </tr>
      <tr>
         <td id="id_td_table2" rowspan="3">Блок 2</td>
      </tr>
   </tbody>
</table>

рони 10.09.2013 14:31

Ruslan_xDD,
:-?
<body>
Текст1Текст2Текст3<table><tbody><tr><td id="id_td_table1" rowspan="3">Блок 1</td>
</tr><tr></tr>
<tr></tr>
<tr></tr>
<tr><td id="id_td_table2" rowspan="3">Блок 2</td>

</tr></tbody></table>



</body>

danik.js 10.09.2013 14:34

Цитата:

Сообщение от Ruslan_xDD
Если я не ошибаюсь, то браузер должен всё это преобразовать в:

Зачем гадать?
<table>
<td id="id_td_table1" rowspan="3">Блок 1</td>
<tr>Текст1</tr>
<tr>Текст2</tr>
<tr>Текст3</tr>
<td id="id_td_table2" rowspan="3">Блок 2</td>
</table>
<script>
    var self = document.scripts[document.scripts.length-1];
    self.parentNode.removeChild(self);
    alert(document.body.innerHTML);
</script>

ruslan_mart 10.09.2013 14:36

рони, проверил через оперу, ты прав. :)

Яростный Меч 10.09.2013 14:58

nextUntil

http://api.jquery.com/nextUntil/


Часовой пояс GMT +3, время: 22:19.