选择Child ByClassName Javascript

时间:2015-02-23 20:32:49

标签: javascript

我在同一页面上有许多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';
            };
    });
};

2 个答案:

答案 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