我在同一页面上有许多div,例如以下渲染:
<div class="contentUser">
<div class="innerContent">
Some data
</div>
<div class="contentButtonWrap">
Some buttons
</div>
</div>
我需要触发&#34; contentButtonWrap&#34;何时点击&#34; contentUser&#34;。
我不知道如何选择某个类名的子元素。请注意,可以在&#34; contentUser&#34;中呈现的元素数量。从div(contentUser)更改为div。但是有各种各样的方法只有一个&#34; contentButtonWrap&#34;内容&#34; ContentUser&#34;。
这就是我所拥有的:
function avoidHover() {
var userDivs = document.getElementsByClassName('contentUser');
[].forEach.call(userDivs, function(e){
e.click = function(){
var target = e.getElementsByClassName('contentButtonWrap');
target[0].style.backgroundColor='green';
};
});
};
答案 0 :(得分:1)
“onclick”而非“点击”。对不起...
function avoidHover() {
var userDivs = document.getElementsByClassName('contentUser');
[].forEach.call(userDivs, function(e){
e.onclick = function(){
var target = e.getElementsByClassName('contentButtonWrap');
target[0].style.backgroundColor='green';
};
});
};
答案 1 :(得分:0)
以下是我对此的看法:http://jsfiddle.net/cdL51w2g/
function avoidHover() {
var userDivs = document.getElementsByClassName('contentUser');
for(var i=0; i<userDivs.length; i++){
userDivs[i].onclick = function(){
var target = this.getElementsByClassName('contentButtonWrap');
target[0].style.backgroundColor='green';
};
}
};
我更改了访问父div
中的子项的方式,并在问题中使用了函数onclick
而不是click
。