javascript中的新手..需要一些帮助。
我有一个SPAN或IMG,我想使用javascript fadeOut。但是当我这样做时没有任何反应:
// 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();
我只是犯或者是一个愚蠢的错误,还是我疯了?
感谢
库尔顿
答案 0 :(得分:3)
假设你正在使用jQuery,你的选择器是不正确的:
$('#test_one').fadeOut();
请注意,它应该是一个字符串(所以单引号或双引号)并使用'#'来按id选择。 Documentation of selectors can be found on the jQuery site
这应该有效:
// 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()
获取命名元素!请参阅this和this。我建议不要依赖这种行为。
答案 1 :(得分:3)
首先,您使用的是哪个库? jQuery的? (fadeOut()
方法不是内置于JavaScript中。)
尝试将<span>
或<img>
的CSS属性设置为display: block
或display:inline-block
。这应该使淡出效果。它适用于<div>
元素的原因是默认情况下它是一个块元素。默认情况下,<span>
和<img>
元素以内嵌方式显示。
答案 2 :(得分:1)
您必须像这样有效地使用选择器 对于“id”使用:
$('#myId').fadeOut();
对于这样的类:
$('.myClass').fadeOut();
依旧......
答案 3 :(得分:1)
在你的风格中添加:
span#test_one { display:inline-block; }
当然:
$("#test_one").fadeOut();
您提供的代码仅适用于IE。
答案 4 :(得分:0)
我认为这是一个愚蠢的错误(我们都做了),你的选择器应该是$('#test_two')