[英]Can't fadeOut span or image but I can fadeOut DIV?
javascript新手。需要一点帮助。
我有一个要使用JavaScript淡出的SPAN或IMG。 但是,当我这样做时,什么也没有发生:
// HTML
<span id='test_one'>Span Text Here</span>
<img src='img_src_here' id='test_two'>
// JavaScript
$(test_one).fadeOut();
$(test_two).fadeOut();
但是,如果我这样做,它将正常运行:
// HTML
<div id='test_one'>Span Text Here</div>
// JavaScript
$(test_one).fadeOut();
我是在犯错误还是愚蠢的错误,还是疯了?
谢谢
库尔顿
假设您使用的是jQuery,则选择器不正确:
$('#test_one').fadeOut();
请注意,它应该是一个字符串(用单引号或双引号引起来),并使用“#”按ID进行选择。 选择器的文档可以在jQuery网站上找到 。
这应该工作:
// HTML
<span id='test_one'>Span Text Here</span>
<img src='img_src_here' id='test_two'>
// JavaScript
$('#test_one').fadeOut();
$('#test_two').fadeOut();
编辑
至于为什么它可以使用div
但不能使用img
或span
,我尚不清楚,但正如@Steve指出的那样,可以通过将元素的id
用作全局变量来引用元素。 但是,这是非标准行为,只有某些浏览器(众所周知的IE)执行元素id
到全局名称空间的映射。 IE还允许通过getElementById()
获取命名元素! 看到这个和这个 。 我建议不要依赖此行为。
首先,您正在使用哪个库? jQuery的? ( fadeOut()
方法未内置在JavaScript中。)
尝试将<span>
或<img>
的CSS属性设置为display: block
或display:inline-block
。 这应该使淡出工作。 它可用于<div>
元素的原因是,默认情况下它是一个块元素。 <span>
和<img>
元素默认内联显示。
您必须像这样将选择器有效地用于“ id”使用:
$('#myId').fadeOut();
对于这样的类:
$('.myClass').fadeOut();
等等....
在您的样式中添加以下内容:
span#test_one { display:inline-block; }
而且当然:
$("#test_one").fadeOut();
您提供的代码仅在IE中有效。
我会称这是一个愚蠢的错误(我们都犯了),您的选择器应为$('#test_two')
查看: http : //jsfiddle.net/ku8sa/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.