例子:
<div class="test"><img src="test.jpg" style="display:none;" /></div>
如何使用JavaScript更改此内容,我知道在CSS中它是这样的:
.test img {display:block;}
但是在JavaScript中,我只知道这个:
document.getElementById("test").style.display="block";
那显然是整个div标签,不是图片。
例子:
<div class="test"><img src="test.jpg" style="display:none;" /></div>
.test img {display:block;}
document.getElementById("test").style.display="block";
那显然是整个div标签,不是图片。
"test"
,您可以这样做。document.getElementById("test")
.getElementsByTagName("img")[0].style.display="block";
getElementsByTagName
方法,该方法返回一个图片集合。通过 [0]
取得索引为 0
的图片(第一张图片),然后应用样式。"test"
的类,你可以这样做,但在 IE7 及以下版本中不起作用:var imgs = document.querySelectorAll(".test > img");
for( var i = 0; i < imgs.length; i++ ) {
imgs[i].style.display="block";
}
function getElementsByClassName( root, clss ) {
var elems = document.getElementsByTagName('*'),
result;
clss = " " + clss + " ";
for( var i = 0; i < elems.length; i++ ) {
if( (" " + elems[ i ].className + " ").indexOf( clss ) > -1 ) {
result.push( elems[i] );
}
}
return result;
}
var tests = getElementsByClassName( document, "test" );
for( var i = 0; i < tests.length; i++ ) {
var img = tests[i].getElementsByTagName('img')[0];
if( img ) {
img.style.display="block";
}
}
$('.test img').css('display', 'block')
即可;-) - AlnitakquerySelectorAll
,它在IE8及以上版本中得到支持。 - RightSaidFredgetElementsByClassName()
的结果上加上 [0]
后缀,并且在它实际不存在的情况下进行错误检查! - Alnitak