Проверить наличие элемента на странице
Подскажите чет не соображу. Как мне определить есть ли элемент с определенным id на странице. По идее думал что
document.getElementById(id)выдаст false если нет элемента и true если есть но что то не работает |
Выдаст null, если элемента нет, и сам элемент -- если он есть.
|
Так будет легче проверять, по сути тоже самое что сказал Kolyaj:
<script type="text/javascript"> var element=document.getElementById('logo'); if(!element){alert('меня нет на странице');} else {alert('я присутствую');} </script> |
Наверное пытаетесь найти элемент который еще не загрузился!
<script> alert(document.getElementById('s')); //null </script> <div id="s"></div> |
Спасибо Kolyaj,
Vulkan, HelpeR, в принципе я обощел это место но учту на будующее, теперь не получается вот что function Add_Minsumm_Popoln(id){ // функция добавляет или удаляет поля для внесения сумм минимального пополнения вклада var id_table = document.getElementById('adm_dep_main_table') var befor_tr = document.getElementById('deduct') //проверяем валюты if(document.getElementById(id).value == 'Да'){ if(document.getElementById('rur').checked){ var new_tr = document.createElement('TR') new_tr.id = 'min_pop_rur' id_table.insertBefore(new_tr,befor_tr) new_tr.innerHTML = '<td>Минимальная сумма пополнения валюта Рубль РФ </td> \ <td><input type="text" name="form[value4]" /></td>' } Это кусок функции которая срабатывает по onchange , на мой взгляд должно работать но Firebug выдает вот такое сообщение Node was not found" code: "8 [Break on this error] id_table.insertBefore(new_tr,befor_tr) Хоть это уже будет другая тема подскажите где ошибка. |
можно вместо id_table.insertBefore(new_tr,befor_tr) вставить
if(id_table) { id_table.insertRow(0); id_table.rows[0].insertCell(0).innerHTML = 'Минимальная сумма пополнения валюта Рубль РФ'; id_table.rows[0].insertCell(1).innerHTML = '<input type="text" name="form[value4]" />'; } |
HelpeR,
Мне ж надо в конкретное место вставить. Интересно что table_id.appendChild(new_tr)работает и нормально вставляет в конец таблицы |
if(id_table) { id_table.insertRow(0); // если 0 то вы вставите как первый tr, 1 как второй и тд id_table.rows[/*сюда эту же цифру*/].insertCell(0).innerHTML = 'Минимальная сумма пополнения валюта Рубль РФ'; id_table.rows[/*сюда эту же цифру*/].insertCell(1).innerHTML = '<input type="text" name="form[value4]" />'; } |
HelpeR,
Ну да понятно, спасибо тут вроде можно вычислить номер tr попоробую переделать, все таки странно что insertBefore не работает |
да почему то insertBefore не работает для таблиц и приходится использовать только insertRow
|
Цитата:
|
Цитата:
|
Есть пару строк кода:
var myknop; myknop=document.getElementById ('myknop'); remove(myknop); if( myknop != null )return; function remove( elem ) { if ( elem ) elem.parentNode.removeChild( elem ); } Элемент кнопка. После его удаления условие упорно выдает не null и происходит return. Как это победить? |
var table = document.getElementById('collapseobj_similarthreads'), tr1 = table.getElementsByTagName('TR')[2], tr = document.createElement('TR'), td; for(var i=0; i<5; i++) { td = document.createElement('TD'); td.appendChild(document.createTextNode('Тест')); tr.appendChild(td); } table.insertBefore(tr, tr1); Запустите в консоли и проверьте таблицу внизу этой ветки (Похожие темы). в качестве table используется не таблица, а tbody. tr не является прямым потомком table, браузер автоматом создает tbody. |
sotik, если вопрос еще актуален, ты удалил элемент из родителя, но переменная не была очищена, и используя ее ты можешь заново вставить этот элемент куда-либо. Помимо removeChild тут надо явно присваивать myknop = null;
|
Часовой пояс GMT +3, время: 03:33. |