Javascript - изменить src элемента в указанном элементе

В html у меня много разных DIV с именами (да, именами, а не идентификаторами) соответственно p001, p002, p003... вот так:

<div id="pole" name="p001"><img src=""></div>
<div id="pole" name="p002"><img src=""></div>
<div id="pole" name="p003"><img src=""></div>

и т.д...

В Javascript я определил переменную с именем «pos», которая содержит число, на данный момент: «284» и функцию, которая должна изменить img src на «player.png». Я пробовал 2 способа, и ни один из них не работает:

document.getElementsByName('p'+pos).innerHTML='<img src="player.png">';

и

document.getElementsByName('p'+pos).getElementsByTagName("img").src="player.png";

Как изменить img src, который находится в указанном DIV?


person Kyrtap    schedule 21.07.2013    source источник
comment
Ваши div должны иметь разные идентификаторы, если вы хотите, чтобы ваш html был действительным, и если вы хотите избежать конфликтов javascript.   -  person Stefan    schedule 21.07.2013
comment
Элементы div не определяют атрибут "name". Ваш код не будет работать по крайней мере в IE8 и ниже при извлечении div элементов с использованием getElementsByName.   -  person    schedule 21.07.2013


Ответы (2)


getElementsByName возвращает список элементов, а не один элемент, поэтому попробуйте:

document.getElementsByName('p'+pos)[0].
    getElementsByTagName("img")[0].src="player.png";
person Esailija    schedule 21.07.2013

Прежде всего, я думаю, вам следует поменять местами атрибуты name и id в тегах div. У вас НЕ МОЖЕТ быть несколько элементов с одним и тем же идентификатором, но вы можете иметь несколько элементов с одним и тем же именем.

<div name="pole" id="p001"><img src=""></div>
<div name="pole" id="p002"><img src=""></div>
<div name="pole" id="p003"><img src=""></div>

Чтобы решить вашу проблему, вы можете использовать свойство firstChild DOM, если img всегда будет первым дочерним элементом вашего тега div.

document.getElementById('p'+pos).firstChild.src="player.png";
person mohkhan    schedule 21.07.2013
comment
«имя» не является допустимым атрибутом для div. «имя» здесь должно быть скорее «классом». - person Stefan; 21.07.2013