Почему мой идентификатор элемента возвращает Null? - PullRequest
1 голос
/ 22 марта 2011

фрагмент кода: HTML

               <div id="imgpreview" name="imgpreview">
                   <img id="srcimg" name="srcimg" />

                   <div id="resident_name"></div>
                   <div id="resident_addr"></div>
                   <div id="resident_contact"></div>
                   <div id="sale_or_rent">
                       <img id="for_sale_img" class="obtn" src="../images/ads/ForSaleSignSm.jpg" />
                       <img id="for_rent_img" class="obtn" src="../images/ads/ForRentSignSm.gif" />
                   </div>
               </div>

фрагмент кода: Javascript

function div_obj( id )
{
    if( document.layers ) return document.layers[id];

    else if( document.all ) return document.all[id];

    else if( document.getElementById ) return document.getElementById( id );

    else return null;
}

Возвращает идентификатор для DIV «imgpreview», но все остальные, IMG и DIV, возвращают ноль. Это происходит независимо от того, определен я SRC или нет для IMG "srcimg". Кто-нибудь знает, почему это происходит? Я так долго смотрел на это, я уверен, что новый набор глаз поможет. ТИА.

Ответы [ 5 ]

4 голосов
/ 22 марта 2011

Этому коду должно быть около 10 лет - просто отбросьте все, кроме return document.getElementById(id);.Я не понимаю, почему это не сработает ни при каких обстоятельствах.

0 голосов
/ 30 апреля 2014
document.getElementById("imgpreview").children[0].src = "images/new_dis.png";

это изменится "srcimg" elemet src

0 голосов
/ 23 марта 2011

Виноват

Проблема оказалась функцией hide_img в onload, которая установила innerHTML для "imgpreview" DIV в "", тем самым стирая все элементы в DIV "imgpreview".

Я действительно ценю предложения по коду, потому что они привели меня к лучшему стилю и оценили каждую функцию ссылки, выявляющую виновника.

решаемая.

0 голосов
/ 22 марта 2011

Вам действительно не нужно беспокоиться о document.all и document.layers.document.getElementById(id) кросс-браузер совместим с IE4

0 голосов
/ 22 марта 2011

Потому что «srcimg» и остальные находятся не на верхнем уровне документа?Почему бы просто не использовать document.getElementById ()?

Редактировать: О!этих других элементов нет в документе, потому что вы пытались закрыть свое первое изображение с обратной косой чертой вместо прямой косой черты.Обратная косая черта в основном игнорируется, что означает, что определение изображения просто продолжается и включается и включается.

Измените вторую строку на:

 <img id="srcimg" name="srcimg" />

вместо

 <img id="srcimg" name="srcimg" \>
...