Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проверить наличие элемента на странице (https://javascript.ru/forum/dom-window/12118-proverit-nalichie-ehlementa-na-stranice.html)

KonstantinK 01.10.2010 12:05

Проверить наличие элемента на странице
 
Подскажите чет не соображу. Как мне определить есть ли элемент с определенным id на странице. По идее думал что
document.getElementById(id)
выдаст false если нет элемента и true если есть но что то не работает

Kolyaj 01.10.2010 12:26

Выдаст null, если элемента нет, и сам элемент -- если он есть.

Vulkan 01.10.2010 13:05

Так будет легче проверять, по сути тоже самое что сказал Kolyaj:
<script type="text/javascript">
var element=document.getElementById('logo');
if(!element){alert('меня нет на странице');} else {alert('я присутствую');}
</script>

HelpeR 01.10.2010 13:17

Наверное пытаетесь найти элемент который еще не загрузился!
<script>
alert(document.getElementById('s')); //null
</script>
<div id="s"></div>

KonstantinK 01.10.2010 13:41

Спасибо 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)
Хоть это уже будет другая тема подскажите где ошибка.

HelpeR 01.10.2010 13:48

можно вместо 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]" />';
}

KonstantinK 01.10.2010 14:03

HelpeR,
Мне ж надо в конкретное место вставить. Интересно что
table_id.appendChild(new_tr)
работает и нормально вставляет в конец таблицы

HelpeR 01.10.2010 14:11

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]" />';
}

KonstantinK 01.10.2010 14:28

HelpeR,
Ну да понятно, спасибо тут вроде можно вычислить номер tr попоробую переделать, все таки странно что insertBefore не работает

HelpeR 01.10.2010 14:42

да почему то insertBefore не работает для таблиц и приходится использовать только insertRow


Часовой пояс GMT +3, время: 05:36.