Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   getElementById не выполняется (https://javascript.ru/forum/misc/29031-getelementbyid-ne-vypolnyaetsya.html)

teles 12.06.2012 10:00

getElementById не выполняется
 
<html>
<head>
    <title></title>
    <script type="text/javascript">

        var count = prompt('Введите число больше 0', '10');

        if (count > 0){
            for (count; count > 0; count--) {
                alert(count);
            }
            alert('Началось!');

        }
        else{
            alert('Конец истории');
            document.getElementById("one").src ="http://sense-studios.com/wordpress/xangadix/files/2012/05/write_all_the_code_in_javascript1.jpg";
            
        }

    </script>
</head>
<body>
<p>
<img id="one" src="https://secure.gravatar.com/avatar/dc89d060bf578163f1429d6e300c97df?s=140&d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" alt="one" />
</p>
</body>
</html>

вот собственно в блоке else document.getElementById не выполняется:( И пощему это могло бы быть?

9xakep 12.06.2012 10:13

Переместите искомый элемент выше
<script>

teles 12.06.2012 10:34

не понял ?

Dim@ 12.06.2012 10:59

teles,
вы ищете объект по id который еще не создан, img над <script> установите
или заключите все в функцию и в body установите onload='имя функции()'

9xakep 12.06.2012 11:00

<script>
alert(document.getElementById('div')) 
/* искомый элемннт стоит ниже, как у вас, и в следствии не работает */
</script>
<div id='div'></div>

<div id='div'></div>
<script>
alert(document.getElementById('div')) // а так работает
</script>

Dim@ 12.06.2012 11:02

9xakep,
везде null выводит вставь какой-нибудь элемент в div

9xakep 12.06.2012 12:11

Dim@,
наркоманшоле?
клац

Dim@ 12.06.2012 14:30

Цитата:

Сообщение от 9xakep (Сообщение 180962)
Dim@,
наркоманшоле?

неа
вот скрин

Dim@ 12.06.2012 14:40

teles,
Если вы не догоняете то вот как надо писать здесь объект с id-ом one создается раньше чем ищется
<html>
<head>
    <title></title>
</head>
<body>
<p>
<img id="one" src="https://secure.gravatar.com/avatar/dc89d060bf578163f1429d6e300c97df?s=140&d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" alt="one" />
</p>
<script type="text/javascript">

        var count = prompt('Введите число больше 0', '10');

        if (count > 0){
            for (count; count > 0; count--) {
                alert(count);
            }
            alert('Началось!');

        }
        else{
            alert('Конец истории');
            document.getElementById("one").src ="http://sense-studios.com/wordpress/xangadix/files/2012/05/write_all_the_code_in_javascript1.jpg";
            
        }

    </script>
</body>
</html>

можно так или вот так:
а здесь код заключен в функцию лоад которая ждет полной загрузки документа (следовательно img с id-ом one создается раньше чем ищется=))
<html>
<head>
    <title></title>
<script type="text/javascript">
function load(){
        var count = prompt('Введите число больше 0', '10');

        if (count > 0){
            for (count; count > 0; count--) {
                alert(count);
            }
            alert('Началось!');

        }
        else{
            alert('Конец истории');
            document.getElementById("one").src ="http://sense-studios.com/wordpress/xangadix/files/2012/05/write_all_the_code_in_javascript1.jpg";
            
        }
}
    </script>
</head>
<body onload='load()'>
<p>
<img id="one" src="https://secure.gravatar.com/avatar/dc89d060bf578163f1429d6e300c97df?s=140&d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png" alt="one" />
</p>
</body>
</html>

teles 12.06.2012 15:17

как вставить html со скриптом, чтобы он выполнялся?

Dim@ 12.06.2012 15:20

teles
заключите код не в [js] а в [html] и добвьте run вот так [html run]

teles 12.06.2012 15:39

<html>
<head>
    <title></title>
    <script type="text/javascript">
        var b = confirm('Take a thanks');


    </script>
</head>
<body onload="thanks()">
<p align="center">
<img id="thanks" src="" alt="thanks"/>
</p>
<script type="text/javascript">
    function thanks() {
        if (b) {
            document.getElementById('thanks').src = 'http://img.photobucket.com/albums/v140/eldiablojoe/ThanksForTheInfo.gif';
        }
        else {
            document.getElementById('thanks').src = 'http://www.makeyourmeme.ru/default/instance_2/86962/original.jpg';
        }
    }

</script>
</body>
</html>

Deff 12.06.2012 15:44

teles,
Удобнее и быстрее грузится - если две картинки будут уже на странице с display:none,
- А, по-нужному условию, - display:inline-block; нужной картинки

Dim@ 12.06.2012 15:46

Deff,:yes: :yes:

teles 12.06.2012 21:21

как обратиться к стилю елемента?

9xakep 12.06.2012 21:31

<div id='div' style='display:none;z-index:1'>123</div>
<script>
alert(document.getElementById('div').style.display)
alert(document.getElementById('div').style.zIndex)
</script>


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