Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Динамически сгенерированное имя name картинки


Автор: linuxoid 14.8.2010, 00:07
Уважаемые коллеги. Как сделать, чтобы javascript работал так же как и в примере с PHP, т.е. воспринимал бы динамически созданное имя как имя картинки, которую можно найти через document. К примеру document.image_1. Бдагодарю за информацию.

Код

<!DOCTYPE html>
<head>
<title>Test</title>
</head>
<body>

<img src="images/src1.jpg" name="image_1" />
<img src="images/src2.jpg" name="image_2" />
<img src="images/src3.jpg" name="image_3" />

<script type="text/javascript">

function prepareFormValues()
{
    <?php    

    for($i = 1; $i <= 3; $i++)
    {
        echo
       'if(typeof(document.image_'.$i.') != "undefined")
        {
            alert(document.image_'.$i.'); // работает
        }';
    }

    ?>
    
            
    for(var i = 1; i <= 3; i++)
    {
        var img_name = "image_" + i;
        alert(document.img_name); // не работает
    }
}

prepareFormValues();

</script>  
  
</body>

Автор: IDVsbruck 14.8.2010, 00:19
Для этого переменная должна быть глобальной.
Но вопрос, видимо, не в этом - что надо сделать?

Автор: linuxoid 14.8.2010, 10:33
Нужно просто добраться до элемента по динамически сгенерированному имени.

По идее можно и так

Код

<!DOCTYPE html>
<head>
<title>Test</title>
</head>
<body>
<img src="images/src1.jpg" name="image_1" />

<script type="text/javascript">

var i = 1;

var element = "document.image_" + i;
alert(eval(element));

</script>  
  
</body>


Но может быть лучше так ?

Код

<!DOCTYPE html>
<head>
<title>Test</title>
</head>
<body>
<img src="images/src1.jpg" name="image_1" />

<script type="text/javascript">

var i = 1;

var element = document.getElementsByName("image_" + i).item(0);
alert(element);

</script>  
  
</body>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)