Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Динамически пронумеровать строки таблицы (https://javascript.ru/forum/jquery/19088-dinamicheski-pronumerovat-stroki-tablicy.html)

ArmagedDance 25.07.2011 22:32

$("#add_session").live("click", function(){
$("#new_profile_table").append('<tr>'+session_form+'</tr>');
$("#new_profile_table tr.sess").each(function(i){
  $(this).attr("id", "new_session_"+i+1);
  $(this).find("td.session_count").find("p").text(i+1);
  })
});


Не работает вот так. Может быть такое, что $(this) перехватывается и вместо прохождения цикла хранит в себе объект, на котором кликнули?

ArmagedDance 25.07.2011 22:37

Alert(i) внутри each дает постоянно нули. цикл не идет, я был прав - this перехватывается функций live.

baxa332 24.05.2013 19:57

Цитата:

Сообщение от ваый (Сообщение 115393)
<table>
<tr>
    <td></td>
    <td>Row</td>    
</tr>
<tr>
    <td></td>
    <td>Row</td>
</tr>
<tr>
    <td></td>
    <td>Row</td>    
</tr>
<tr>
    <td></td>
    <td>Row</td>
</tr>
</table>

<script>
$('table tr').each(function(i) {
    var number = i + 1;
    $(this).find('td:first').text(number);
});
</script>

Этот скрипт не работает это видно и при просмотре. На поставленный вопрос ответа нет
Зачем нужна ссылка на https://ajax.googleapis.com/ajax/lib.../jquery.min.js
что там есть ?

BaBaKa 26.10.2014 21:52

Цитата:

Сообщение от ArmagedDance (Сообщение 115379)
Как можно динамически пронумеровать (внеся счет в отдельную ячейку) строки таблицы с использованием jquery?

var table = document.getElementById("table");
var tr = table.getElementsByTagName("tr");
for (var i=0; i < tr.length; i++) {
   tr[i].innerHTML = '<td>'+i+'.</td>'+tr[i].innerHTML;
}

рони 26.10.2014 22:37

BaBaKa, :cray:
insertCell лучше

mousesport 20.11.2014 15:18

Цитата:

Сообщение от ваый (Сообщение 115393)
<table>
<tr>
    <td></td>
    <td>Row</td>
</tr>
<tr>
    <td></td>
    <td>Row</td>
</tr>
<tr>
    <td></td>
    <td>Row</td>
</tr>
<tr>
    <td></td>
    <td>Row</td>
</tr>
</table>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
$('table tr').each(function(i) {
    var number = i + 1;
    $(this).find('td:first').text(number);
});
</script>

а как изобразить подобное но со второй строки?

рони 20.11.2014 15:42

Цитата:

Сообщение от mousesport
а как изобразить подобное но со второй строки?

:cray: изучить селекторы
<table>
<tr>
    <td></td>
    <td>Row</td>
</tr>
<tr>
    <td></td>
    <td>Row</td>
</tr>
<tr>
    <td></td>
    <td>Row</td>
</tr>
<tr>
    <td></td>
    <td>Row</td>
</tr>
</table>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$('table tr:nth-child(n + 2)').each(function(i) {
    var number = i + 1;
    $(this).find('td:first').text(number);
});
</script>

или просто подумать
<table>
<tr>
    <td></td>
    <td>Row</td>
</tr>
<tr>
    <td></td>
    <td>Row</td>
</tr>
<tr>
    <td></td>
    <td>Row</td>
</tr>
<tr>
    <td></td>
    <td>Row</td>
</tr>
</table>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$('table tr').each(function(i) {
   i && $(this).find('td:first').text(i);
});
</script>


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