Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Скрытие(Удаление) столбца (https://javascript.ru/forum/jquery/23182-skrytie-udalenie-stolbca.html)

ViruSkin 15.11.2011 14:02

Скрытие(Удаление) столбца
 
Есть таблица вида, где количество столбцов неизвестно, количество столбцов класс "addon" могут меняться, и столбцы перед ними кроме id и name могут ещё добавиться. Сейчас решение такое (смотрите на код js)
<div id="colcheck">
	<input type="checkbox" value="0" />addon1<br/>
	<input type="checkbox" value="1" />addon2<br/>
	<input type="checkbox" value="2" />addon3<br/>
</div>
<table id="list">
	<thead>
		<tr>
			<td>id</td>
			<td>name</td>
			<td class="addon">addon1</td>
			<td class="addon">addon2</td>
			<td class="addon">addon3</td>
			<td>pid</td>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td>1</td>
			<td>elem1</td>
			<td>2</td>
			<td>2</td>
			<td>4</td>
			<td>7</td>		
		</tr>
		<tr>
			<td>2</td>
			<td>elem2</td>
			<td>4</td>
			<td>4</td>
			<td>2</td>
			<td>7</td>		
		</tr>
	</tbody>
</table>

$("#colcheck input").change(function(){
	sel = parseInt($(this).val())+2;
	$("#list").find("tr").each(function(){
		$(this).find("td:eq("+sel+")").toggle(1000);
	});
});

У меня тут решение работает если у меня известно количество столбцов до класса "addon". Можете подсказать как сделать код более гибким, или мб есть другое решения нахождения столбцов?

walik 15.11.2011 14:44

sel = parseInt($(this).val())
//...
$(this).find("td.addon:eq("+sel+")").toggle(1000);

Serg_pnz 15.11.2011 14:51

Ну так и запросите какая по номеру первая ячейка класса addon в родителе tr. Тогда Вам и будет известна "двоечка" для sel

ViruSkin 15.11.2011 16:21

2walik, class addon только у заголовной строки
2Serg_pnz, спасибо .index() и было решением :)

sel = $("#list thead td").index($("#product_list .addon:eq("+$(this).val()+")"));


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