Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Создание элемента в начале innerHTML (https://javascript.ru/forum/misc/11858-sozdanie-ehlementa-v-nachale-innerhtml.html)

KamaZz 17.09.2010 16:09

Создание элемента в начале innerHTML
 
Здравствуйте, у меня есть кусок HTML:
<li class="disabled" id="button3">
    	            <div class="supply3">
	            </div>
</li>

Мне нужно создать тег img над div.
<li class="disabled" id="button3">
<img width="22" height="14" align="left" id="turnbutton" title="Добавить в очередь" src="img/layout/sofort_bauen.gif">
    	            <div class="supply3">
	            </div>
                </li>

Код который ниже...
var buildbox = document.getElementById("building");
var buildArray = buildbox.getElementsByClassName("disabled");
//var button = "<img align=\"left\" title=\"Добавить в очередь\" width=\"22\" height=\"14\" src=\"img/layout/sofort_bauen.gif\">";
var turnButton = document.createElement('img');
turnButton.id = 'turnbutton', turnButton.align = 'left', turnButton.title = 'Добавить в очередь', turnButton.width = '22',
turnButton.height = '14', turnButton.src = 'img/layout/sofort_bauen.gif';

for (i = 0; i < buildArray.length; i++) {
	buildArray[i].insertBefore(turnButton, buildbox.getElementsByClassName("supply" + i)[0]);
}

И попытки поиграться с Child'ами и Sibling'ами, не увенчались успехом...

Sweet 17.09.2010 16:14

Поздравляем!:victory:

KamaZz 17.09.2010 16:21

Благодарю, обожаю подобную дружелюбность со стороны посетителей форума...

Sweet 17.09.2010 16:23

Это был не просто флуд, но намек. Лично я не понял сути проблемы.

KamaZz 17.09.2010 16:29

В таком случае, извиняюсь...
Проблема заключаеться в том, что при создании элемента, он создается в конце выделенного элемента. Даже с (вероятно неправильным) использованием insertBefore

Sweet 17.09.2010 16:39

Как насчет такого варианта:
<li class="disabled" id="button3">
<div class="supply3">text</div>
</li>
<script>
var li = document.getElementById('button3'),
liChild = li.childNodes,
div, img = document.createElement('img')
img.src = 'http://javascript.ru/forum/images/ca_serenity/misc/logo.gif'
for(var i=0, len=liChild.length; i<len; i++){
  if(liChild[i].className == 'supply3') {
    div = liChild[i]
    break
  }
}
li.insertBefore(img, div)
</script>

KamaZz 17.09.2010 16:48

Немного переделал под себя, но ошибку я нашел, спасибо...


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