Цитата:
function close(нужные классы){
var trs=document.getElementsByTagName("TR");
for( var i=0; i<екы.length; i++)
if(trs.className==нужные классы)
trs.style.display = 'none';
}
а потом в первое поле где date_01_07_2013 вставить ссылку <a href="javascript:close(dt01_07_2013)">показать поле</a> но вот всё никак не выходит:( |
vladislav.blinov,
что мешает в код который я дал добавить вашу кнопку |
мешают только знания точнее их отсутствие) если не трудно напиши пример кнопки.
|
vladislav.blinov,
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
a{
margin-left: 10px
}
</style>
</head>
<body>
<table>
<tr class="date_01_07_2013"><td>01.07.2013</td></tr>
<tr class="dt01_07_2013">
<td>имя</td>
<td>фамилия</td>
</tr>
<tr class="dt01_07_2013">
<td>имя</td>
<td>фамилия</td>
</tr>
<tr class="dt01_07_2013">
<td>имя</td>
<td>фамилия</td>
</tr>
<tr class="date_31_07_2013"><td>31.07.2013</td></tr>
<tr class="dt31_07_2013">
<td>имя</td>
<td>фамилия</td>
</tr>
<tr class="dt31_07_2013">
<td>имя</td>
<td>фамилия</td>
</tr>
<tr class="dt31_07_2013">
<td>имя</td>
<td>фамилия</td>
</tr>
</table>
<script>
for (var a = document.getElementsByTagName("TR"), b = 0; b < a.length; b++) {
var d = a[b],
e = d.className;
if (/^date_/.test(e)) {
var e = e.replace("ate_", "t"),
f = document.createElement("a");
f.appendChild(document.createTextNode("\u0441\u043a\u0440\u044b\u0442\u044c"));
d.cells[0].appendChild(f);
f.href = "#";
f.onclick = function (g) {
return function () {
this.textContent = this.textContent == "\u0441\u043a\u0440\u044b\u0442\u044c" ? "\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c" : "\u0441\u043a\u0440\u044b\u0442\u044c" ;
for (var c = 0; c < a.length; c++) g == a[c].className && (a[c].style.display = "none" != a[c].style.display ? "none" : "table-row");
return !1
}
}(e);
f.onclick()
}
};
</script>
</body>
</html>
|
спасибо за помощь :thanks:
но я никак не могу разобраться в этих строчках
if (/^date_/.test(e)) {
var e = e.replace("ate_", "t"),
получается он в первой tr ищет строчку date_ потом делает replace и превращает строку из date_ в dt но если в первой tr будет class="date_tr date_01_07_2013" и по логике поменять код на
if (/^date_tr.date_/.test(e)) {
var e = e.replace("ate_tr.date_", "t"),
то он должен работать как и было но он начинает работать наоборот т.е. скрывает первую tr (сам себя) что я написал не правильно? |
vladislav.blinov,
задача была с одним классом из date_31_07_2013 получаем dt31_07_2013 если классов много решается иначе например методом job |
это ни к чему, код твой хорошо работает, просто я его модернизирую и изучаю для того что бы лучше разбираться в js. если не сложно скажи метод которым я смогу это сделать, а я попробую про него прочитать и сам уже добить. был бы признателен.
|
vladislav.blinov,
читайте про RegExp меняйте /^date_/ и var e = e.replace("ate_", "t"), и если необходимо g == a[c].className на if (/class(условно)/.test(a[c].className)) |
| Часовой пояс GMT +3, время: 05:33. |