我想我会在 jQuery 事件期间花哨并使用 vanilla JavaScript。这个想法是,在点击一个标题时,我想向上滑动一个 div(它可以工作)并将点击的标签替换为一个更大的标题。
从我读过的内容来看,这可能是由于parentNode
引用了一个不是实际父元素的元素,但在检查后似乎选择了它正上方的元素。
所以......这是代码!
HTML(在 Jade 中)
.policy-container
h6.policy-heading Policies
.policy-list
.content-we-are-hiding
.not-actually-important
jQuery
$('.policy-heading').click(function() {
var self = this;
if (this.classList.contains('closed')) {
$(this).next().slideDown(300);
this.parentNode.replaceChild(self, '<h6 class="policy-heading">Policies</h6>');
} else {
$(this).next().slideUp(300);
this.parentNode.replaceChild(self, '<h2 class="policy-heading closed">Policies</h2>');
}
});
一切看起来都很标准。幸运的是,我可以使用 jQuery 来解决这个问题,但是我宁愿在这里使用 vanilla JS。任何想法为什么这不起作用?