2014-06-28 26 views
0

我试图在普通/原始javascript中创建一个淡出/淡入淡出的循环,但它看起来像我不能得到最简单的工作。不透明度过滤器本身。我有一个div id="slideshow"并创建了2个充满活力的孩子。 Img and div用javascript设置不透明度到div div

<div id="slideshow"> 
//start dynamic part 
<img src="image1.png" /> 
<div id="tooltip" /> 
//stop dynamic part 
</div> 

即时通过javascript创建这些标签。

var slideshow = document.getElementById('slideshow'); 
slideshow.innerHTML ='<img src="image1.png" /><div id="tooltop"></div>': 

即时通讯现在试图给予Slideshow的子div div opacity using javascript。

var slideshowDiv = document.getElementById("slideshow").getElementsByTagName("div"); 
slideshowDiv.style.opacity = 0.5; 
slideshowDiv.style.filter = "alpha(opacity=50)"; 

这是不工作becouse缺乏事件处理程序时,新的标记是用JavaScript创建的?否则我不明白这个问题。

回答

1

getElementByTagName返回NodeList而不是HTMLElement

使用索引从NodeList中检索元素。

例如,对于第一个元素,可以这样做:

slideshowDiv[0].style.opacity = 0.5; 
slideshowDiv[0].style.filter = "alpha(opacity=50)"; 

索引从0开始和最后一个索引是(阵列的长度 - 1)

+0

这样basicly的NodeList是一个数组?并在我的情况下,我想针对div的情况下是slideshowDiv [1]? – Nicco

+0

@ user3721495没有。它只有'slideshowDiv [0]',因为你只有一个'div'。 'slideshowDiv'只包含div –

+0

是的,这是真正的因为我的目标是在父母的子div。谢谢 – Nicco