【发布时间】:2014-05-29 07:37:40
【问题描述】:
当我点击稍后观看图标时,勾号会正确显示。
但是,当我将相同的 div 格式应用到另一个部分时,勾号将出现在第一个 div 上。
这是我的 HTML 和 JavaScript:
<div id="video1" class="hovertext">
<span class="video-txt">01:54</span>
<span class="watch-later">
<input type="image" onclick="showTick()" src="images/watchlater.jpg" />
</span>
<span class="tick" style="display:none;">
<input type="image" onclick="conceal()" onMouseOut="hideTick()" src="images/tick.jpg" />
</span>
</div>
第二部分只有不同的视频ID
<div id="video2" class="hovertext">
<span class="video-txt">01:54</span>
<span class="watch-later">
<input type="image" onclick="showTick()" src="images/watchlater.jpg" />
</span>
<span class="tick" style="display:none;">
<input type="image" onclick="conceal()" onMouseOut="hideTick()" src="images/tick.jpg" />
</span>
</div>
my javascript
<script type="text/javascript">
function conceal() {
if(document.getElementsByClassName('tick')[0].style.display =='block') {
document.getElementsByClassName('tick')[0].style.display ='none';
}
}
function showTick(){
if(document.getElementsByClassName('tick')[0].style.display =='none') {
document.getElementsByClassName('tick')[0].style.display ='block';
}
}
function hideTick(){
if(document.getElementsByClassName('tick')[0].style.display =='block') {
document.getElementsByClassName('tick')[0].style.display ='none';
}
}
</script>
它看起来像这样。当我点击第二部分时,勾号出现在第一部分:S
[IMG]http://i59.tinypic.com/2itdgi.jpg[/IMG]
如何更改 JavaScript 或 div 内联,使其不会影响任何其他 div 但仍运行相同的功能?
请,任何帮助将不胜感激。
【问题讨论】:
-
那是因为你总是得到第一个元素的类名“tick。
document.getElementsByClassName('tick')[0]你需要通过点击发送“this”,然后在你的函数中使用它。onclick="showtick(this)"
标签: javascript html classname