javascript - 鼠标输入时更改类属性

标签 javascript html

我在这个脚本上绞尽脑汁,因为我不明白为什么它不起作用,因为它应该非常简单,我只想显示和隐藏某个 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;
}

我不明白我做错了什么。

最佳答案

存在多个问题:

  1. 您弄乱了标记中的单引号。
  2. .getElementsByClassName 方法存在拼写错误,Element 部分中缺少 s
<小时/>

更新标记:

<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';
  });
}

关于javascript - 鼠标输入时更改类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36422635/

相关文章:

html - 将一个元素推到其父级的底部,没有重叠?

jquery - 防止带有边距的 jQuery slideUp 跳转

html - Bootstrap 将表单并排放置

Javascript 不会火?

javascript - 在 Javascript 中,如何在对象的选项内创建数据属性?

javascript - 在组件之间的 vue.js 中传递变量

javascript - jQuery 在单击事件上使用拇指图像标题更新主图像标题

javascript - Phonegap Sqlte :the statement callback raised an exception or statement errorcallback did not return false

javascript - React-gtm-module 未发布事件参数

java - 在 Servlet 中构建 HTML 添加额外的引号