Динамическое удаление элемента
Здравствуйте.
Подскажите пожалуйста. Есть такой кусочек кода: var d=document.createElement('div'); d.style.width='100%'; d.style.height='20px'; d.style.background=' lightgreen '; document.body.appendChild(d); var li = document.createElement('LI') li.innerHTML = j+' Вопрос: верно' d.appendChild(li) Как теперь при нажатии в на кнопку удалять этот div со всем что внутри. И возможно ли вообще? Делаю маленький тест, и нужно очищать внизу поле с правильно/не правильно, чтобы если много раз нажимают, не накапливалось. |
Зыкин Илья,
зависит от задачи...будет ли этот div единственный или их может быть много... d.id = "id"; <input type="button" value="Delete" onClick="javascript:document.getElementById('id').parentNode.removeChild(d);"> приведите HTML и остальную часть JS |
Просьба сильно не критиковать сам способ реализации, ибо профан.
Но буду очень благодарен конкретным примерам как лучше и почему(особенно советам, как сократить и оптимизировать код). И что можно, а чего не стоит использовать. Приведу весь документ: <html> <head> <title>Тест</title> <script> function voprtrue() { var check; var j; var i; for (j=1; j<4; j++) { var d=document.createElement('div'); d.style.width='100%'; d.style.height='20px'; check = 0; for (i=0; i<document.getElementsByName("v"+j+"").length; i++) { if (document.getElementsByName("v"+j+"")[i].checked) { check = 1; if (document.getElementsByName("v"+j+"")[i].value == 1) { d.style.background=' lightgreen '; document.body.appendChild(d); var li = document.createElement('LI') li.innerHTML = j+' вопрос: верно' d.appendChild(li) } else { d.style.background=' red '; document.body.appendChild(d); var li = document.createElement('LI') li.innerHTML = j+' вопрос: не верно' d.appendChild(li) } } } if (check == 0) { d.style.background=' #B1BBC6 '; document.body.appendChild(d); var li = document.createElement('LI') li.innerHTML = j+' вопрос: пропущен!' d.appendChild(li) } } } </script> </head> <body> <div id="questions"> <p>Медиа-мониторинг это ...<br></p> <input name=v1 type="radio">это отслеживание ключевых слов и выражений по открытым источникам, подобранных профессионалами по заказу клиента.<br> <input name=v1 type="radio" value="1">Это круглосуточный просмотр медиа-файлов<br> <input name=v1 type="radio">Это наблюдение за статистикой просмотров медиа-контента в сети<br> <input name=v1 type="radio">Анализ медиа-контента на сайте<br> <hr> <p>Медиа-мониторинг это ...<br></p> <input name=v2 type="radio" value="1">это отслеживание ключевых слов и выражений по открытым источникам, подобранных профессионалами по заказу клиента.<br> <input name=v2 type="radio">Это круглосуточный просмотр медиа-файлов<br> <input name=v2 type="radio">Это наблюдение за статистикой просмотров медиа-контента в сети<br> <input name=v2 type="radio">Анализ медиа-контента на сайте<br> <hr> <p>Медиа-мониторинг это ...<br></p> <input name=v2 type="radio">это отслеживание ключевых слов и выражений по открытым источникам, подобранных профессионалами по заказу клиента.<br> <input name=v2 type="radio">Это круглосуточный просмотр медиа-файлов<br> <input name=v2 type="radio">Это наблюдение за статистикой просмотров медиа-контента в сети<br> <input name=v2 type="radio" value="1">Анализ медиа-контента на сайте<br> <hr> </div> <button onclick="voprtrue();">Закончить тест</button> </body> </html> |
Цитата:
<html> <head> <title>Тест</title> <script> function voprtrue() { var check; var j; var i; if (document.getElementById("id1")) { return alert("Результаты уже отображены"); } else { for (j=1; j<4; j++) { var d=document.createElement('div'); d.id = "id"+j; d.style.width='100%'; d.style.height='20px'; check = 0; for (i=0; i<document.getElementsByName("v"+j+"").length; i++) { if (document.getElementsByName("v"+j+"")[i].checked) { check = 1; if (document.getElementsByName("v"+j+"")[i].value == 1) { d.style.background=' lightgreen '; document.body.appendChild(d); var li = document.createElement('LI') li.innerHTML = j+' вопрос: верно' d.appendChild(li) } else { d.style.background=' red '; document.body.appendChild(d); var li = document.createElement('LI') li.innerHTML = j+' вопрос: не верно' d.appendChild(li) } } } if (check == 0) { d.style.background=' #B1BBC6 '; document.body.appendChild(d); var li = document.createElement('LI') li.innerHTML = j+' вопрос: пропущен!' d.appendChild(li) } } } } function deleteResults() { for (j=1; j<4; j++) { document.getElementById("id"+j).parentNode.removeChild(document.getElementById("id"+j)); } } </script> </head> <body> <div id="questions"> <p>Медиа-мониторинг это ...<br></p> <input name=v1 type="radio">это отслеживание ключевых слов и выражений по открытым источникам, подобранных профессионалами по заказу клиента.<br> <input name=v1 type="radio" value="1">Это круглосуточный просмотр медиа-файлов<br> <input name=v1 type="radio">Это наблюдение за статистикой просмотров медиа-контента в сети<br> <input name=v1 type="radio">Анализ медиа-контента на сайте<br> <hr> <p>Медиа-мониторинг это ...<br></p> <input name=v2 type="radio" value="1">это отслеживание ключевых слов и выражений по открытым источникам, подобранных профессионалами по заказу клиента.<br> <input name=v2 type="radio">Это круглосуточный просмотр медиа-файлов<br> <input name=v2 type="radio">Это наблюдение за статистикой просмотров медиа-контента в сети<br> <input name=v2 type="radio">Анализ медиа-контента на сайте<br> <hr> <p>Медиа-мониторинг это ...<br></p> <input name=v2 type="radio">это отслеживание ключевых слов и выражений по открытым источникам, подобранных профессионалами по заказу клиента.<br> <input name=v2 type="radio">Это круглосуточный просмотр медиа-файлов<br> <input name=v2 type="radio">Это наблюдение за статистикой просмотров медиа-контента в сети<br> <input name=v2 type="radio" value="1">Анализ медиа-контента на сайте<br> <hr> </div> <button onclick="voprtrue();">Закончить тест</button><button onclick="deleteResults();">Удалить результаты</button> </body> </html> но лучше рисуй все свои div-ы на каком-нибудь общем div-е... |
Большое спасибо.
|
Чтобы не плодить темы, спрошу тут же.
Есть у меня в том же скрипте условие if (document.getElementsByName("v"+j+"")[0].value < tr_max) { ... } Но не работает условие, я так понимаю из за того что он не понимает что это числа? Как ему указать что document.getElementsByName("v"+j+"")[0].value и tr_max это числа? P.S. Переменная tr_max объявлена сверху и присвоено значение 50 var tr_max = 50; В document.getElementsByName("v"+j+"")[0].value ввожу число. |
Цитата:
<script language="JavaScript"> var tr_max = 50; function func() { if (document.getElementById("id").value < tr_max) { alert("значение элемента < tr_max"); } } </script> <input type="text" id="id" onkeypress="func()"> ...getElementsByName("v"+j+"")[0]... +"" абсолютно не к чему |
Ну да, я тоже думал что по идее не надо, но как то не заработал скрипт в какой то момент, думал в этом дело.
Спасибо, значит тут всё нормально. |
Часовой пояс GMT +3, время: 09:57. |