我对这个剧本感到不满,因为我不明白为什么它不起作用,因为它应该很简单,我只想展示和隐藏一个某些div或改变它的属性。
使用Javascript:
function show(x){
var y = document.getElementByClassName(x);
y.style.display= 'block';
}
function hide(x){
var y = document.getElementByClassName(x);
y.style.display = 'none';
}
HTML:
<a href='http://dreamspark.e-uvt.ro/dreamspark/'target='_blank'onmouseover='show('divdreamspark')'onmouseleave='hide('divdreamspark')'>
CSS:
.divdreamspark {
display: none;
}
我不知道自己做错了什么。
答案 0 :(得分:1)
有很多问题:
.getElementsByClassName
部分中的方法s
缺少Element
,这是一个错字。更新标记:
<a href='http://dreamspark.e-uvt.ro/dreamspark/'target='_blank'
onmouseover='show("divdreamspark")'
onmouseleave='hide("divdreamspark")'>
更新js:
function show(x){
var y = document.getElementsByClassName(x)[0]; // <---missing s in Element
y.style.display= 'block';
}
function hide(x){
var y = document.getElementsByClassName(x)[0]; // <---missing s in Element
y.style.display = 'none';
}
如果元素是单个,则选择器的后缀为[0]
(尽管类选择器返回一个集合)。如果您正在处理多个元素,那么您必须使用循环来迭代并隐藏它们中的每一个。
function show(x) {
var y = document.getElementsByClassName(x);
[].forEach.call(y, function(i, el) {
el.style.display = 'block';
});
}
function hide(x) {
var y = document.getElementsByClassName(x);
[].forEach.call(y, function(i, el) {
el.style.display = 'none';
});
}