- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在设置此脚本以在我的 Wordpress 站点中工作时遇到了这个问题。代码使用 nextElementSibling 获取相同级别的元素(制作 Accordion ),如 W3schools 页面所示:https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_accordion
<style>
button.accordion {
background-color: #eee;
color: #444;
cursor: pointer;
padding: 18px;
width: 100%;
border: none;
text-align: left;
outline: none;
font-size: 15px;
transition: 0.4s;
}
button.accordion.active, button.accordion:hover {
background-color: #ccc;
}
div.panel {
padding: 0 18px;
display: none;
background-color: white;
}
</style>
<h2>Accordion</h2>
<button class="accordion">Section 1</button>
<div class="panel">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<button class="accordion">Section 2</button>
<div class="panel">
<p>Lorem ipsum dolor sco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<button class="accordion">Section 3</button>
<div class="panel">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
</div>
<script type="text/javascript">
var acc = document.getElementsByClassName("accordion");
var i;
for (i = 0; i < acc.length; i++) {
acc[i].onclick = function(){
this.classList.toggle("active");
var panel = this.nextElementSibling;
window.alert(panel);
if (panel.style.display === "block") {
panel.style.display = "none";
} else {
panel.style.display = "block";
}
}
}
</script>
您可以看到我的脚本与 W3Schools 页面中的脚本完全相同,除了窗口警告行,我用它来查看发生了什么。好吧,没有任何反应,当我按下任何按钮时,没有任何显示。但我怀疑 nextElementSibling 有问题,因为窗口警报显示为“null”,而示例页面中的警报显示为“[object HTMLDivElement]”。
所以我认为 nextElementSibling 没有将“面板”类 div 分配给面板变量。
问题是为什么它在示例页面中有效,而在我的 Wordpress 帖子中无效?
此外,此脚本在我的同一篇文章中运行良好(因此错误不是 javascript 实现):https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_toggle_hide_show
请帮忙。
最佳答案
Wordpress 自动 p 标签将您的按钮元素包装在一个段落中,因此带有面板类的 div 不再是您的下一个兄弟
<p><button class="accordion">Section 1</button></p>
您可以将下一个兄弟行更新为 parentElement.nextElementSibling
,它应该可以工作,或者您可以通过将以下内容添加到您的函数文件或修改您的 js 以选择父 p 元素来禁用自动 p 标签在使用下一个 sibling 之前。
<?php remove_filter ('the_content', 'wpautop'); ?>
关于javascript - nextElementSibling 在 Wordpress 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47762516/
我在元素内部有几个 Javascript 输入,并且在它们下面有 s 。 我还有一个 javascript 函数,如果有字母输入,它会删除输入的值,以便它只接受数字。 t=function(ele
我正在尝试使用 vanilla JS 制作推荐模块,当我对集合使用“for”循环时遇到问题 - 控制台显示 testimonials[i].nextElementSibling is null。当我手
我目前正在编写一个 Accordion 并遇到了与 nextSibling difference between IE and FF? 中描述的相同问题。 - Microsoft 的 nextSibl
这个问题已经有答案了: How do I return the response from an asynchronous call? (42 个回答) 已关闭 4 年前。 我正在使用 CKEdito
我正在尝试搜索特定文本以在找到链接时突出显示该链接。因为链接不在h4标签里面我不知道怎么解决。 html代码 Title P ... Title X ABC EFG MNO X
这不完全是代码中的问题,但我无法理解问题背后的原因。首先,请看一下代码: HTML: Head First : Javascript
我在设置此脚本以在我的 Wordpress 站点中工作时遇到了这个问题。代码使用 nextElementSibling 获取相同级别的元素(制作 Accordion ),如 W3schools 页面所
示例:https://jsfiddle.net/theandybob/6wuc39d9/ 使用 IE 时,如果我有注释并尝试从中访问 nextElementSibling 属性,我会得到 undefi
我用纯 JS 编写了一个灯箱脚本: HTML: JS: function pLightbox(objPhoto){ var path=objPhoto.src; HTMLtext = '
有测试代码: 1 2 var id = document.getElementById("abc"); var div = id.nextE
在下面的代码中,没有 sibling 。 previousElementSibling正确返回 null ,但是 nextElementSibling没有。 nextEleme
虽然我似乎偶尔会得到奇怪的结果,但在我看来这些结果是一样的,所以有人可以描述一下区别吗? 最佳答案 “nextSibling”返回下一个节点对象,而“nextElementSibling”返回下一个元
我的html是这样的: me! convert! prints 函数只是将函数参数输出到控制台日志上。我需要立即找到 anchor 标记旁边的 a 标记的 href 值。即单击按钮时,我需要获取值
我正在尝试使用 nextElementSibling 以编程方式移动表单中的焦点,但是我也在使用 Typescript 并想要输入我的变量/常量... 我已经成功无需打字,并使用以下内容: myFun
在这个 HTML 结构中: one a two b 为什么会出现以下脚本: // Function to change the conten
这只是一个简单的下拉菜单...在 Chrome、FF 和 Safari 中运行良好。但在 IE 中:无法获取未定义或空引用的属性“样式” document.getElementById('icon')
你如何测试 child 实际上包含下一个元素兄弟或如果没有找到下一个兄弟? child = await page.evaluateHandle(el => el.nextElementSibling,
Here is div-01 Here is div-02 它们不是同一个东西吗? 两者都返回紧随其后的节点。我读了很多文章,但在我看来都喜欢同样的东西,但不知道在哪里使用其中一个与另一个? 最佳答案
我需要更新一些旧的 Javascript 以跨浏览器兼容。该代码最初是为 IE6 创建的,并且由于 HTML 的布局方式而大量使用 nextSibling 和 previousSibling。 显然
Javascript 新手。我最近发布了一个关于创建多个多层 Accordion 的问题。我得到了一些很好的反馈,但有人提到,如果我的 HTML 设置正确,我可以通过使用 nextElementSib
我是一名优秀的程序员,十分优秀!