Javascript 如果当前元素具有特定类,则将类添加到上一个元素

Javascript 如果当前元素具有特定类,则将类添加到上一个元素,javascript,jquery,html,css,css-tables,Javascript,Jquery,Html,Css,Css Tables,我想将一个表作为目标,它位于我想用作“触发器”的元素之外,然后给它一个额外的类 <div> <table class="table"></table> </div> <div></div> <div class="trigger"> <!---content open---> </div> 类触发器仅在该div打开时出现,因此当它打开并添加该类时,我希望将目标指向它正上方的表,并

我想将一个表作为目标,它位于我想用作“触发器”的元素之外,然后给它一个额外的类

<div>
 <table class="table"></table>
</div>

<div></div>

<div class="trigger">
 <!---content open--->
</div>

类触发器仅在该div打开时出现,因此当它打开并添加该类时,我希望将目标指向它正上方的表,并且只指向该表。问题是table类table在页面上出现了不止一次,并且在这两个元素之间总是有一个进一步的div。如何在前面直接选择一个表?

如果我理解正确,您希望向表中添加一个类,对吗?如果是这种情况,您可以向要修改的唯一表添加id,然后使用addClass


给定HTML结构,您尝试匹配的表是要触发的同级节点的子级:

使用prevAll获取触发器前面的所有同级,使用find在其中搜索.table,并在结果匹配中保留最后一个

前导变量=$'.trigger'.prevAll.find'.table'.last; $previous.addClass'match';//用于演示,以便您可以查看匹配的内容 .比赛{ 颜色:F00; } 我不要这张桌子 你想要这张桌子吗 这个兄弟姐妹没有桌子 这是扳机 我不想要这个div 还是这张桌子
您可以执行$'.trigger'.prevUntil'.table.prev,但首先您必须确定元素何时具有.trigger类,以及挂接到哪个事件?是否使用任何jQuery/javascript将“trigger”添加到div中?您好,如果您不想使用jQuery,可以添加父div并将css样式与parentThank匹配。对于打开或关闭的“trigger”div,是否有可能打开或关闭它?当然,尽管可能最好将其作为打开或关闭trigger div的任何事件的一部分来处理,而不是监视trigger div的状态。它并没有像我希望的那样工作,因为打开的div“trigger”包含复选框,选中时,自动刷新页面并似乎重置区域。作为一个新手,我不知道该怎么做。应该不需要刷新页面来重置一切,如果你只是切换一个div的可见性。但是,在没有看到现有代码的情况下,很难给出如何修复该部分的建议;如果你可以简化一下,那么你正在从那些复选框中触发事件,这会有所帮助。可能是一个新问题,而不是这个问题的更新,因为它与您在这里提出的问题截然不同。
<script>
    //perform condition checking
    $("#myTableID").addClass("class_to_add");
</script>
...
<div>
   <table id="myTableID"></table>
</div>

<div></div>

<div class="trigger">
  <!---content open--->
</div>