使用javascript将事件侦听器添加到多个元素

时间:2016-01-10 21:26:13

标签: javascript javascript-events

所以,我想要做的是定位#menu-wrap li中的所有标签。 我对JS很新,所以如果我遗漏了一些明显的东西,我很抱歉!

使用Javascript:

var menuLink = document.querySelector( '#menu-wrap li' );    
for (var i = 0; i < menuLink.children.length; i++) {
var childElement = menuLink.children[i];
childElement.addEventListener('click', doSomething, false);
}

function doSomething() {
    alert("Hello");
}

HTML

<div class="menu-wrap" id="menu-wrap">
    <nav class="menu">
        <ul id="menu-mobile-menu" class="menu">
            <li><a href="#">Link 1</a></li>
            <li><a href="#">Link 2</a></li>
            <li><a href="#">Link 1</a></li>
        </ul>
    </nav>              
</div>

2 个答案:

答案 0 :(得分:3)

querySelector

  

返回文档中的第一个元素(使用文档节点的深度优先预先遍历遍历|文档标记中的第一个元素,并按子节点数量的顺序迭代顺序节点)与指定的选择器组匹配。

您想使用querySelectorAll然后循环生成的节点列表(或者您希望将事件处理程序绑定到#menu-wrap本身,然后使用event.target来确定哪个列表项是点击了。)

列表项不是设计为交互式控件。您应该使用链接或按钮。

答案 1 :(得分:-1)

Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: com.test.TestClass1 column: column1 (should be mapped with insert="false" update="false") 仅获取第一个元素。但你可以用课程做到这一点。做这个。只需将类Document.querySelector连接到您想要具有该功能的任何内容。

HTML

sth

JS

<div class="menu-wrap" id="menu-wrap">
            <nav class="menu">
                <ul id="menu-mobile-menu" class="menu">
                    <li class="sth"><a href="#">Link 1</a></li>
                    <li class="sth"><a href="#">Link 2</a></li>
                    <li class="sth"><a href="#">Link 1</a></li>
                </ul>
            </nav>
</div>