Javascript 将类应用于具有属性的元素
我试图对属性“state”等于“disabled”的所有元素应用一个类。我将检查每个有“.overlay”的元素并检查状态,然后在属性“state”为“disabled”时追加类“disabledClass”。问题是它在所有元素上都应用了“disabledClass”。我猜这与我在$(this)中使用$(this)有关 HTML: 试试这个:Javascript 将类应用于具有属性的元素,javascript,jquery,Javascript,Jquery,我试图对属性“state”等于“disabled”的所有元素应用一个类。我将检查每个有“.overlay”的元素并检查状态,然后在属性“state”为“disabled”时追加类“disabledClass”。问题是它在所有元素上都应用了“disabledClass”。我猜这与我在$(this)中使用$(this)有关 HTML: 试试这个: $(".overlay").click(function(){ $(".overlay").attr("state", "disabl
$(".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");
}
});
});
试试这个:
$(".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");
}
});
});
对不起,我真的不明白你的问题,即你想知道什么 但这可能会有所帮助:
使用jQuery查找所有具有class
overlay
和属性state
设置为disabled
的DOM元素,然后将classdisabledClass
附加到已经包含classnavElement
的子级。这个简单语句应该可以实现以下功能:
$(".overlay[state='disabled']").find(".navElement").addClass("disabledClass")
对不起,我真的不明白你的问题,即你想知道什么 但这可能会有所帮助:
使用jQuery查找所有具有class
overlay
和属性state
设置为disabled
的DOM元素,然后将classdisabledClass
附加到已经包含classnavElement
的子级。这个简单语句应该可以实现以下功能:
$(".overlay[state='disabled']").find(".navElement").addClass("disabledClass")
state不是有效的属性,您应该使用data-*属性,然后答案将被删除change@adeneo在这种情况下,这并不重要。@VisioN-这就是为什么它是一个注释,标记无效,更改标记可能会更改答案,尤其是
data()
更常用于数据属性。另一方面,设置活动状态更常用于类,但无论什么都可以让你的山羊浮动@adeneo我只是没有得到这句话“然后答案会改变”。状态不是一个有效的属性,你应该使用data-*属性,然后答案会改变change@adeneo在这种情况下,这并不重要。@VisioN-这就是为什么它是注释,标记无效,更改标记可能会更改答案,尤其是data()
更常用于数据属性。另一方面,设置活动状态更常用于类,但无论什么都可以让你的山羊浮动@adeneo我只是没有听到这句话“然后答案会改变”。你应该强调你已经将if
条件更改为$(这)
,否则很难看到差异。您应该突出显示您已将if
条件更改为$(此)代码>,否则很难看出区别。