我想要一類適用於具有屬性「狀態」的所有元素等於「已禁用」。我正在瀏覽具有「.overlay」和檢查狀態的每個元素,然後在屬性「state」爲「disabled」時追加類「disabledClass」。問題在於它在所有元素上應用「disabledClass」。我猜這與我在$(this).find(「。navElement」)。addClass(「disabledClass」)中使用$(this)有關。 ?應用類到元素具有屬性
HTML:
<div id="1" class="overlay" state="active">
<div class="navElement">
<p>About us</p>
</div>
</div>
<div id="2" class="overlay" state="disabled">
<div class="navElement">
<p>Our values</p>
</div>
</div>
<div id="3" class="overlay" state="disabled">
<div class="navElement">
<p>The founder</p>
</div>
</div>
JS
$(".overlay").click(function() {
$(".overlay").attr("state", "disabled");
$(this).attr("state", "active");
$(".overlay").each(function() {
if ($(".overlay").attr("state") == "disabled") {
$(this).find(".navElement").addClass("disabledClass");
}
});
});
狀態是不是一個有效的屬性,你應該使用data- *屬性,然後答案會改變 – adeneo
@ adeneo在這種情況下,這不*真的*重要。 – VisioN
@VisioN - 這就是爲什麼它是一個**註釋**,標記是無效的,改變標記可以改變答案,尤其是'data()'更常用於數據屬性。 – adeneo