我想点击" aaa"或" bbb" 。如何在没有班级的情况下访问li元素"点击"来自ul的id = parent?对于我使用的其他元素:
var elements = document.getElementById('parent');
var classElem = document.getElementsByClassName('click');
我想到了这样的事情:liW = elements - classElem
但这并不起作用。
这是我使用的HTML:
<html>
<head>
</head>
<body> <ul id = "parent">
<li> aaa </li>
<li> bbb </li>
<li class ="click"> ccc </li>
<li class ="click"> ddd </li>
</ul>
<ul> <li> eee </li>
</ul>
</body>
答案 0 :(得分:2)
您可以使用Array.filter
,如下所示:
var liW = [].filter.call(
document.getElementById('parent').children, // the LI elements
function(li) {return !li.classList.contains('click');}
);
这将为您提供一个节点数组,这些节点对应 <{1}}的{{1}}标记。
答案 1 :(得分:1)
您可以循环浏览所有子li
元素,检查每个元素是否具有类click
,如果没有,则单击时显示警告。
var elements = document.getElementById('parent').getElementsByTagName('li');
function elementClicked(elem) {
alert('test');
}
for(var i = 0; i < elements.length; i++) {
if(!elements[i].classList.contains('click')) {
elementClicked(elements[i]);
}
}
答案 2 :(得分:1)
您可以将事件侦听器放在父元素上 - UL - 并检查目标元素是否具有该类。
示例 -
list = document.getElementById('parent');
list.addEventListener('click',function(e){
if (e.target.className.indexOf('click') === -1) alert(test);
});