基于另一个div的类,如何触发onclick事件?

3

我有一个javascript按钮,当点击时会触发onclick事件,但只有在另一个div中包含名为"active"的类时才想要触发该事件。

所以我的代码结构如下:

<div id="div1">
<div id="someid1" class="design"></div>
<div id="someid2" class="design"></div>
<div id="someid3" class="design"></div>
<div id="someid4" class="design"></div>
</div>

根据其他页面活动,任何人都可以将其更改为class="active"。
<div id="someid2" class="design active">
<button type="button" id="button1" onclick="dosomething">Click me</button>

但是我只希望当上面的任何一个div具有活动类时,才执行dosomething操作,如果没有,则弹出警告。我不太擅长JavaScript,需要一些帮助。希望这很清楚。谢谢。

dosomething 内创建一个 if 条件语句来检查你的条件。 - PM 77-1
1个回答

3
假设dosomething是一个函数,你可以在函数内部检查类。
function dosomething() {
    if ( document.querySelector('#parentid .active') ) {
        // do stuff
    }
}

querySelector如果没有找到元素会返回null,这是假值。

document.querySelector文档


dosomething是一个函数,所以我不想检查"active"的缺失并基于此抛出警报吗? - z320
你想检查 #someid 是否有 active 类,方法是尝试选择具有该 ID 和该类的元素,如果选择了某些东西,则存在,并且因此该元素具有 active 类?如果要显示警报,请添加一个 else 语句,然后进行警报。 - adeneo
我明白了。这有点复杂,因为活动类将存在于具有不同ID的三个或四个div之一中。这些div位于另一个具有自己ID的div内部。我正在寻找的是任何一个包含“active”类的div,该div位于另一个div内部。希望这样说得清楚。我会编辑问题。 - z320
在这种情况下,尝试选择父元素内带有自己ID的.active元素。我已更改上面的代码以反映这一点。 - adeneo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接