а я честно говоря вообще противник вот этого вот (имхо):
onclick='showAnswer(1)' куда лучше обернуть в еще один див. навешать события циклом и работать с dom. может я не прав, но я бы сделал так. ни каких айдишников, номеров и прочей шняги |
Цитата:
<!DOCTYPE html> <html> <head> <!-- <script src='http://code.jquery.com/jquery-latest.js'></script> <link rel='stylesheet type=text/css href=tmp.css' /> --> <style type='text/css'> div.showAnswer { display: none; } </style> <script type='text/javascript'> function showAnswer(Obj,N) { if (Obj.value=='Ответить') { Obj.value='Отмена'; document.getElementById('hdn_'+N).className=''; } else { Obj.value='Ответить'; document.getElementById('hdn_'+N).className='showAnswer'; } }; </script> </head> <body> <div class="showAnswer" id="hdn_1"> <textarea name="answerArea" class="textareaForAnswer"></textarea> <input type="button" class="questionBtn" name="sendAnswer" value="Послать ответ"> </div> <input type="button" class="questionBtn" name="answer" onclick='showAnswer(this,1)' value="Ответить"> </body> </html> |
лучше используй jquery. кода меньше и париться тоже
<html> <head> </head> <body> <div class="group"> <div class="form" style="display: none;"> <div><input type="text"></div> <div><input type="button" value="click me"></div> </div> <div><input type="button" value="open"></div> </div> <div class="group"> <div class="form" style="display: none;"> <div><input type="text"></div> <div><input type="button" value="click me"></div> </div> <div><input type="button" value="open"></div> </div> <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <script> $('input[value="open"]').click(function () { $(this).parents('.group').find('.form').css('display', 'block'); }); </script> </body> </html> |
ksa, большое спасибо, мастер.
|
skrudjmakdak, ну я хочу, для начала, яваскрипт подучить получше.
|
ksa, а как сделать тоже самое, но если заметно id будет класс?
Вот яваскрипт (я пробовал ваш пример изменить) function showAll(tObj){ if (tObj.value == 'Показать остальные сообщения') { tObj.value = 'Скрыть остальные сообщения'; document.getElementsByClassName('hiddenTR').style.display = 'block'; } else { tObj.value = 'Показать остальные сообщения'; document.getElementsByClassName('hiddenTR').style.display = 'block'; } } Вот элемент <tr class="hiddenTR"> ЦСС tr.hiddenTR { display: none; } Кнопка <input type="button" value="Показать остальные сообщения" class="questionBtn" onclick='showAll(this)'> |
оно?
<!DOCTYPE html> <html> <head> <style type='text/css'> div.showAnswer { display: none; } </style> </head> <body> <div class="showAnswer" id="hdn_1"> <textarea name="answerArea" class="textareaForAnswer"></textarea> <input type="button" name="sendAnswer" value="Послать ответ"> </div> <input type="button" class="questionBtn" name="answer" value="Показать остальные сообщения"> <div class="showAnswer" id="hdn_1"> <textarea name="answerArea" class="textareaForAnswer"></textarea> <input type="button" name="sendAnswer" value="Послать ответ"> </div> <input type="button" class="questionBtn" name="answer" value="Показать остальные сообщения"> <div class="showAnswer" id="hdn_1"> <textarea name="answerArea" class="textareaForAnswer"></textarea> <input type="button" name="sendAnswer" value="Послать ответ"> </div> <input type="button" class="questionBtn" name="answer" value="Показать остальные сообщения"> <script type='text/javascript'> var but = document.getElementsByClassName('questionBtn'); //найдет массив из 3 кнопок for (var i = 0, ln = but.length; i< ln; ++i) {//делаем цикл по каждой кнопке but[i].onclick = function () { //присвоим каждой кнопке событие onclick if (this.value == 'Показать остальные сообщения') { this.value = 'Скрыть остальные сообщения'; this.previousElementSibling.style.display = 'block'; //previousElementSibling найдет предыдущий dom элемент } else { this.value = 'Показать остальные сообщения'; this.previousElementSibling.style.display = 'none'; } } } </script> </body> </html> |
skrudjmakdak, оно. Спасибо!
|
Часовой пояс GMT +3, время: 21:37. |