Доступ к елементу
Привет всем.
Нужна помощь, есть таблица с 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, время: 23:59. |