Javascript 获取元素类或数据属性
Javascript get element class or data attributes
目前我有一个javascript函数,它寻找一个id并更改一些CSS。但是我希望这个函数在多个div 上运行。因此,我需要我的函数来查找类或数据属性。请你帮帮我!
<script>
var div = document.getElementById('hover')
div.onclick = function () {
this.style.width = '800px'
this.style.transition = 'all 1s'
this.style.backgroundColor = 'red'
}
</script>
您可以将所有元素包装在一个公共父级中,然后将click
事件处理程序应用于该父级,检查发起该事件target
。
这样做,您需要将事件附加到单个元素(而不是每个元素)。
此外,你的风格应该在CSS中声明为一个类,所以你只需要切换那个特定的类(为了可保留性,最好从javascript中远离css)。
这是一个简单的例子 http://codepen.io/anon/pen/jPwXVr
.CSS
.open {
width: 800px;
-webkit-transition : all 1s;
-moz-transition : all 1s;
transition : all 1s;
background: red;
}
.JS
document.getElementById('wrap').addEventListener('click', function(ev) {
var target = ev.target
if (target.nodeName === 'DIV') {
target.className = 'open';
}
}, false);
如果标记的结构使得无法使用公共包装器,则可以将事件附加到 body
元素上,如下所示
http://codepen.io/anon/pen/aOwPWY?editors=011
.CSS
.element {
width: 800px;
-webkit-transition : all 1s;
-moz-transition : all 1s;
transition : all 1s;
}
.element.open {
background: red;
}
.JS
document.body.addEventListener('click', function(ev) {
var t = ev.target;
/* I used classList for the sake of brevity, check caniuse.com
for its support across browser */
if (t.classList.contains('element')) {
t.classList.toggle('open');
}
}, false);
你需要使用class
,这样更好。并循环它!
<script>
var divs = document.getElementsByClassName('hover');
for (var i = 0; i < divs.length; i++)
divs[i].onclick = function () {
this.style.width = '800px'
this.style.transition = 'all 1s'
this.style.backgroundColor = 'red'
}
</script>
使用addEventListener
的示例:
<script>
var divs = document.getElementsByClassName('hover');
for (var i = 0; i < divs.length; i++)
divs[i].addEventListener("click", function () {
this.style.width = '800px'
this.style.transition = 'all 1s'
this.style.backgroundColor = 'red'
}, false);
</script>
相关文章:
- 使用数据属性将HTML数据复制到另一个元素
- 使用jQuery获取第N个元素的数据属性值
- 按数据属性循环元素并替换值
- 选择数据属性日期值早于当前服务器日期的元素
- 将数据属性从锚点元素传递到jQuery函数
- 查找具有特定数据属性jQuery的元素
- 获取所有匹配元素的数据属性
- 使用jQuery,如何在元素上或元素内查找数据属性?(树遍历)
- 当通过Jquery data()附加时,以及当直接通过HTML中的数据属性附加时,检查HTML元素中的数据()
- 使用数据属性滚动到元素
- Javascript数据将元素属性绑定到URL中的锚href
- 通过特定的数据属性获取元素
- 获取 html 元素的点击事件的数据-* 属性
- 检索具有特定数据属性的祖先元素
- jQuery 查找没有数据属性的元素
- Meteor.js:如何检索事件对象的父元素的数据属性
- jQuery 选择器,用于通过比较元素的两个数据属性来选择元素
- 将从元素的数据属性获取的字符串转换为 json
- 如何将javascript对象或JSON存储在使用html5数据属性的html元素中
- 将信息存储在变量与数据属性元素中