Javascript 在不使用jquery的情况下获取具有类名的下一个元素
我没有访问jquery的权限。我试图实现一个accordion,但是content元素并不紧跟在标题之后。它类似于以下内容:Javascript 在不使用jquery的情况下获取具有类名的下一个元素,javascript,Javascript,我没有访问jquery的权限。我试图实现一个accordion,但是content元素并不紧跟在标题之后。它类似于以下内容: <div class="header">...</div> <div> <div class="content"> 因此,我添加了一个函数来处理标头上的onclick事件,然后需要获取HTML源代码中具有content类的下一个元素。我怎样才能做到这一点呢?你可以通过 var contentDiv= docum
<div class="header">...</div>
<div>
<div class="content">
因此,我添加了一个函数来处理标头上的onclick事件,然后需要获取HTML源代码中具有content类的下一个元素。我怎样才能做到这一点呢?你可以通过
var contentDiv= document.getElementsByClassName("content");
您可以在单击的标题节点上使用QuerySelect来实现这一点
<div class="header">
<div>
<div class="content">
[].forEach.call(document.querySelectorAll('.header'), function(header) {
header.addEventListener('click', function(e) {
var content = this.querySelector('.content');
// here, "this" is the header div, and "content" is the content div
// do majick accordion things here
});
});
试试这个文档.getElementByIdheader.getElementsByCassName'content' 使用递归函数和nextSibling[获取下一个元素而不是子元素]怎么样
你想要查询选择或你能分享你的头状点击事件的代码吗?我猜手风琴会有不止一个。内容抱歉,我的代码出错了。请参阅更正的版本。内容不在header元素内。请使用详细信息进行编辑。不鼓励只编码并尝试此答案,因为它们不包含可搜索的内容,并且不解释为什么有人应该尝试此答案。
<div class="header" onclick="hasClass(this)">...</div>
<div>
<div class="content"></div>
</div>
<script>
function hasClass(e){
if(e.nextSibling.children === undefined || e.nextSibling.children.length == 0){
hasClass(e.nextSibling); //go next till find class
}
else{
if(e.nextSibling.children[0].className == "content"){
console.log(e.nextSibling.innerHTML); //get class content html
}
}
}
</script>