繁体   English   中英

无法淡出跨度或图像,但可以淡出DIV吗?

[英]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但不能使用imgspan ,我尚不清楚,但正如@Steve指出的那样,可以通过将元素的id用作全局变量来引用元素。 但是,这是非标准行为,只有某些浏览器(众所周知的IE)执行元素id到全局名称空间的映射。 IE还允许通过getElementById()获取命名元素! 看到这个这个 我建议不要依赖此行为。

首先,您正在使用哪个库? jQuery的? fadeOut()方法未内置在JavaScript中。)

尝试将<span><img>的CSS属性设置为display: blockdisplay: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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM