13.12.2011, 19:15
|
Аспирант
|
|
Регистрация: 04.11.2011
Сообщений: 65
|
|
ширина столбца
добрый вечер
прошу вашей помощи.
ситуация следующая: есть таблица (поле1,поле2, цена,...) и есть чекбокс.
задача: при нажатии на чекбокс скрыть колонку "цена"
работает так: в каждом теге td колонки цена у меня стоят теги div.
при нажатии на чекбокс я в цикле скрываю эти дивы.
проблема: как сделать при нажатии на чекбокс чтобы теги td меняли свою ширину на 0 или вообще просто скрывались
|
|
13.12.2011, 19:19
|
|
Модератор
|
|
Регистрация: 27.04.2010
Сообщений: 3,417
|
|
div.style.display= "none"
|
|
13.12.2011, 19:26
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
Вообще это делается по-другому:
<style>
.noprice td:last-child {display:none}
</style>
<table onclick="className=className?'':'noprice'">
<tr><td>поле1</td><td>поле2</td><td> цена</td></tr>
<tr><td>1</td><td>2</td><td> 3</td></tr>
<tr><td>1</td><td>2</td><td> 3</td></tr>
<table>
Стили и классы естесно свои придумать.
__________________
29375, 35
|
|
13.12.2011, 19:27
|
Аспирант
|
|
Регистрация: 04.11.2011
Сообщений: 65
|
|
у меня так и работает. мне нужно уменьшить ширину столбца, чтобы соседний столбец увеличился
|
|
13.12.2011, 19:31
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
mcavalon,
<style>
.noprice td:last-child {display:none}
</style>
<table style="width:100%" onclick="className=className?'':'noprice'">
<tr><td>поле1</td><td>поле2</td><td> цена</td></tr>
<tr><td>1</td><td>2</td><td> 3</td></tr>
<tr><td>1</td><td>2</td><td> 3</td></tr>
<table>
__________________
29375, 35
|
|
13.12.2011, 19:35
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,124
|
|
mcavalon,
Вариант ...
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<table border="1" bordercolor="#000000" width="100" height="100">
<tr>
<td>1</td>
<td><div>11</div></td>
</tr>
<tr>
<td>2</td>
<td><div>22</div></td>
</tr>
</table>
<script type="text/javascript">
divs = document.body.getElementsByTagName('div')
for (var i=0; i<divs.length; i++) {
var parent = divs[i].parentNode;
divs[i].style.display = "none"
parent.style.display = "none"
}
</script>
</body>
</html>
|
|
13.12.2011, 20:26
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
Я конечно понимаю, что кроссбраузерность зло в наше дни Да и извращения все любят.
Но чем вот так не работает:
<style>
.first-col {
background: red;
}
.second-col {
background: blue;
}
table {
width: 100%;
}
td {
height: 30px;
padding: 0;
}
.hide-some-col .second-col {
width: 0;
}
</style>
<table id="my-table">
<col class="first-col">
<col class="second-col">
<tr>
<td></td><td></td>
</tr>
<tr>
<td></td><td></td>
</tr>
</table>
<a href="" onclick="document.getElementById('my-table').className = 'hide-some-col'; return false">Click me</a>
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
|
|
13.12.2011, 21:33
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
Nekromancer,
Именно из-за кроссбраузерности.
Ваш вариант кажись тока в фф и будет работать, лень проверять.
Я же привел лишь концепцию. Совершенно необязательно использовать :last-child можно просто навесить доп. классы, мне просто лень было.)
рони,
Ваш вариант - первый, что приходит в голову. И самый медленный. К тому же совершенно непонятно зачем скрывать div, предок которого и так скрыт.
__________________
29375, 35
Последний раз редактировалось Aetae, 13.12.2011 в 21:41.
|
|
13.12.2011, 22:04
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
Aetae,
Да, не кроссбраузерно, извиняюсь. Как всегда стараюсь увидеть ошибку в чужом коде, а не в своём )
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
|
|
13.12.2011, 22:37
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
рони,
parent.style.display = "none"
Inline script thread
Uncaught exception: ReferenceError: Security error: attempted to read protected variable: style
Error thrown at line 6, column 4 in [url]http://lookatcode.com/showhtml:[/url]
parent.style.display = "none"
Nekromancer,
твой пример не пашет у меня в Opara 11.60
|
|
|
|