Доступ к елементу
Привет всем.
Нужна помощь, есть таблица с n-ный количеством рядков, некоторые ячейки обеднены по вертикали, и мне нужно так их и вывести. Но проблема с $(this).next().eq(0).text(), как мне указать следующий ряд используя i с цикла for ? tr.each(function(k,elem){ var h_td = $("td",this).eq(0).outerHeight(); var td = $("td",this); if (td.hasClass('ktkv')){ ReportLeftSrc += "<tr><td colspan='2' class='ktkv' style='border-right: none'>"+$('td',this).text()+"</td></tr>"; }else{ if(td.hasClass('number')){ var row = $('td',this); var rowspan = row.attr('rowspan'); for (var i=0; i<rowspan; i++){ if(i==0){ ReportLeftSrc += '<tr style="height: '+h_td+' px"><td rowspan="'+rowspan+'" class="number" style="width: 23px; background-color: #ffffff">'+$('td',this).eq(i).text()+'</td><td class="name" style="background-color: #ffffff;width: 164px">'+$('td',this).eq(i+1).text()+'</td></tr>'; }else{ ReportLeftSrc += "<tr style='height: '"+h_td+"'px' class='ctr'><td class='name counter' style='background-color: #ffffff'>"+ $.trim($(this).next().eq(0).text())+"</td></tr>"; } } //} } } }); |
если в таблице есть <tbody>, то можно так:
var tbody = document.getElementsByTagName("tbody")[0]; tbody.rows[i].cells[j].textContent = "тру-ля-ля"; var str = tbody.rows[i].cells[j].textContent; |
Dencho,
можно минимальный пример таблицы и результат того что хотите получить? |
Dencho,
увы пока ничего не понял ... ни 1 пост ни 4 может Keramet, обьяснит о чём речь? :( |
сейчас попробую ещё раз описать, есть допустим эта таблица, задача состоит в том что бы при скроле влево нужно зафиксировать номера рядков, строки "КТКВ" и текст который находится во втором столбике (КСЗНРЗ,МВТ-2М и т.д ), код выше это делает за исключение того, что когда попадается объединенная строка вроде 23-й я не могу коректно отобразить рядок который идет 3-й по счету.
if(i==0){ ReportLeftSrc += '<tr> <td rowspan="'+rowspan+'">'+$('td',this).eq(i).text()+'</td> //номер рядка + rowspan <td >'+$('td',this).eq(i+1).text()+'</td> // текст 1-й рядок </tr>'; }else{ ReportLeftSrc += "<tr><td>"+ $.trim($(this).next().eq(0).text())+"</td></tr>"; // следующий рядок } $(this).next().eq(0).text() чем это можно заменить чтоб при прогоне в цикле for я бы мог использовать значение "i" ? Если я выполню код который указал выше к таблице которая на скрине то получу КСЗНРЗ “Дніпропетровський ... МВТ-2М №212644 МВТ-2М №212644 а надо КСЗНРЗ “Дніпропетровський ... МВТ-2М №212644 Ultraheat № 67632424 |
рони,
польщен возложенным на меня доверием :thanks: |
а что такое ReportLeftSrc ? :-?
|
Dencho,
если я вас правильно понял ... <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> </head> <body> <table border="1" class="x"> <tr><td class="ktkv" colspan="64">КТКВ(КФКВ): 070802</td></tr> <tr> <td class="number" rowspan="3">23.</td> <td class="name">КСЗНРЗ “Дніпропетровський ...“</td> <td>x</td> <td> </td> <td>x</td> <td> </td> <td>x</td> </tr> <tr class="ctr "> <td class="name counter ">МВТ-2М №212644</td> <td>x</td> <td> </td> <td>x</td> <td> </td> <td>x</td> </tr> <tr class="ctr "> <td class="name counter ">Ultraheat № 67632424</td> <td>x</td> <td> </td> <td>x</td> <td> </td> <td>x</td> </tr> <tr><td class="ktkv" colspan="64">КТКВ(КФКВ): </td></tr> <tr> <td class="number" rowspan="1">24.</td> <td class="name">КЗО “Багатопрофільний...</td> <td>x</td> <td> </td> <td>x</td> <td> </td> <td>x</td> </tr> <tr> <td class="number" rowspan="1">25.</td> <td class="name">КЗО “Дніпропетровський ...“</td> <td>x</td> <td> </td> <td>x</td> <td> </td> <td>x</td> </tr> </table> <table border="1" class="y" > </table> <script> var t = $('.x tbody').clone(); t.find('.name').nextAll().remove() $('.y').append(t) </script> </body> </html> |
Да это оно, спасибо .
Но еще нашёл вариант для своего кода который сверху position = индекс элемента+поправка+мой цикл for $('tr:eq('+position+')').find('.name').text() |
Часовой пояс GMT +3, время: 00:21. |