我正在尝试将一个类应用于属性“state”等于“disabled”的所有元素。我正在查看具有“.overlay”的每个元素并检查状态,然后在属性“state”被“禁用”时附加类“disabledClass”。问题是它在所有元素上应用“disabledClass”。我猜这与我在$(this).find(“。navElement”)中使用$(this)有关.addClass(“disabledClass”); ?
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");
}
});
});
答案 0 :(得分:2)
试试这个:
$(".overlay").click(function(){
$(".overlay").attr("state", "disabled");
$(this).attr("state", "active");
$(".overlay").each(function(){
if($(this).attr("state") == "disabled"){ //changed this
$(this).find(".navElement").addClass("disabledClass");
}
});
});
答案 1 :(得分:2)
抱歉,但我没有真正得到你的问题,即你想知道的......
但这可能有帮助:
使用jQuery查找类overlay
且属性state
设置为disabled
的所有DOM元素,然后将类disabledClass
附加到已包含的子类navElement
类$(".overlay[state='disabled']").find(".navElement").addClass("disabledClass")
这个简单的语句可以解决这个问题:
{{1}}