show и hide
Всех приветствую, Web-ом начал заниматься недавно, являюсь "продвинутым чайником"
есть таблица <table width="100%" border="1" cellspacing="0" cellpadding="0"> <tr> <td>текст1</td> </tr> <tr> <td>текст2</td> </tr> <tr> <td>текст3</td> </tr> </table> нужно при нажатии на "текст1" скрывать строки с "текст2" и "текст3", если они скрыты, то нужно показать, вот пример такой таблицы http://inecostroy.ru/ru/price (юзал поиск и гугл, находил много похожего, но "извлечь" из кода то что нужно мне не смог, объясните пожалуйста реализацию именно моей задачи (интересует код), в программировании шарю нормально, пойму вас быстро) |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>blank</title>
<script type="text/javascript" src="scripts/base.debug.js"></script>
<script type="text/javascript">
var allNext = function(elem) {
if (elem) {
var result = [], i = 0;
while (elem = elem.nextSibling)
if (elem.nodeType == 1) result[i++] = elem;
return result;
}
}
var sh = function() {
var elems = allNext(this), i = elems.length;
while (i) elems[--i].style.display = elems[i].style.display == 'none' ? '' : 'none';
};
window.onload = function() {
document.getElementById('t1').onclick = sh;
};
</script>
</head>
<body>
<table width="100%" cellspacing="0" cellpadding="0" border="1">
<tr id="t1">
<td>
текст1
</td>
</tr>
<tr>
<td>
текст2
</td>
</tr>
<tr>
<td>
текст3
</td>
</tr>
</table>
</body>
</html>
|
а имея массив (вектор), содержимое которого указывает на количество скрываемых строк, и несколько "главных" строк имеющих ID (под которыми располагаются скрываемые строки), как связать это с функциями?
|
Если я правильно понял вопрос:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>blank</title>
<script type="text/javascript">
var $A = function(args) {
if (args) {
var result = [], i = args.length;
while (i) result[--i] = args[i];
return result;
}
return [];
};
Function.prototype.bind = function() {
var method = this, args = $A(arguments), thisObj = args.shift();
return function() {
return method.apply(thisObj == null ? this : thisObj, args.concat($A(arguments)));
};
};
var Element = {
allNext: function(elem) {
if (elem) {
var result = [], i = 0;
while (elem = elem.nextSibling)
if (elem.nodeType == 1) result[i++] = elem;
return result;
}
}
};
var sh = function(length) {
var elems = Element.allNext(this), i = (arguments.length ? length : elems.length);
while (i) elems[--i].style.display = elems[i].style.display == 'none' ? '' : 'none';
};
window.onload = function() {
var elems = {
t1: 2,
t2: 3,
t3: 1
};
for (var id in elems) {
document.getElementById(id).onclick = sh.bind(null, elems[id]);
}
};
</script>
<style type="text/css">
#t1, #t2, #t3
{
background: #ff9;
}
</style>
</head>
<body>
<table width="100%" cellspacing="0" cellpadding="0" border="1">
<tr id="t1">
<td>
текст1
</td>
</tr>
<tr>
<td>
текст2
</td>
</tr>
<tr>
<td>
текст3
</td>
</tr>
<tr id="t2">
<td>
текст1
</td>
</tr>
<tr>
<td>
текст2
</td>
</tr>
<tr>
<td>
текст3
</td>
</tr>
<tr>
<td>
текст4
</td>
</tr>
<tr id="t3">
<td>
текст1
</td>
</tr>
<tr>
<td>
текст2
</td>
</tr>
</table>
</body>
</html>
|
| Часовой пояс GMT +3, время: 08:23. |