首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何才能.toggle(“倒装”)仅父元素?

问我如何才能.toggle(“倒装”)仅父元素?
EN

Stack Overflow用户
提问于 2014-01-08 23:11:27
回答 2查看 409关注 0票数 1

我是JavaScript的初学者。下面是我在JSFiddle上找到的一些代码

代码语言:javascript
复制
$(document.body).on('click', '.button', function() {
     console.log("CLICK");
     document.querySelector('.card').classList.toggle("flip");
});

我试图有多个元素可以单独翻转。我想使用该元素中的一个按钮来触发该父元素的翻转。我不知道从哪里开始,所以我真的希望你们能帮我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-08 23:21:16

document.querySelector

返回与指定的选择器组匹配的文档中的第一个元素(使用文档节点的深度优先预先遍历)。

当前代码总是切换文档中的第一个.card元素。

你想让每一张卡片的按钮翻转那张卡片。您知道卡片是您想要触发其翻转的按钮的祖先,所以当单击按钮时,单击该按钮的祖先类card:

代码语言:javascript
复制
$('.button').on('click', function () {
    $(this).closest('.card').toggleClass("flip");
});

演示

备注:

  • 我将您的选择器从document.body更改为仅.button元素。若要选择所有按钮(允许您删除class="button" ),请删除句点(即$('button') )
  • .closest('selector')返回该选择器组中最近的祖先元素。
  • .toggleClass()比.classList.toggle()干净
票数 1
EN

Stack Overflow用户

发布于 2014-01-08 23:30:06

如果您正在寻找本地js解决方案。这就是我们要走的路:

代码语言:javascript
复制
var button = document.getElementsByClassName("button");
for (var i = 0; i < buttons.length; i++) {
    buttons.item(i).addEventListener("click", function () {
         this.parentNode.parentNode.classList.toggle("flip");
    });
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21008553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档