Javascript 我正在尝试将一个类添加到一个li标记中,该标记具有一个禁用的类

Javascript 我正在尝试将一个类添加到一个li标记中,该标记具有一个禁用的类,javascript,conditional,Javascript,Conditional,如何编写JavaScript条件语句: If an li tag has a class of "disabled" then add a class of "hide" 我正在尝试将该类添加到具有该类的li标记中。li标记没有id。使用jQuery: $('li.disabled').addClass('hide'); 使用jQuery: $('li.disabled').addClass('hide'); 如果您喜欢jQuery: $('li').hasClass('disabled'

如何编写JavaScript条件语句:

If an li tag has a class of "disabled" then add a class of "hide"
我正在尝试将该类添加到具有该类的li标记中。li标记没有id。

使用jQuery:

$('li.disabled').addClass('hide');
使用jQuery:

$('li.disabled').addClass('hide');
如果您喜欢jQuery:

$('li').hasClass('disabled').addClass('hide');
(为了便于参考和清楚起见,请明确提及,但
li.disabled
也适用)

var items=document.getElementsByTagName('li');
对于(变量i=0;i
如果您喜欢jQuery:

$('li').hasClass('disabled').addClass('hide');
(为了便于参考和清楚起见,请明确提及,但
li.disabled
也适用)

var items=document.getElementsByTagName('li');
对于(变量i=0;i
首先,您必须获得所有
li
标签:

var lis = document.getElementsByTagName('li');
然后在其上循环并执行以下操作:

for(var i = lis.length; i--;) {
    var li = lis[i];
    if(/\bdisabled\b/.test(li.className)) {
        li.className += ' hide';
    }
}
参考:

为什么我们不能使用
getElementsByClassName

因为它是


但您可以测试浏览器是否支持:


如果您只引用了一些
li
,则只使用If类:

if(/\bdisabled\b/.test(element.className)) {
    element.className += ' hide';
}
(在所有情况下,您还可以添加进一步的测试,以检查元素是否已经具有
hide
类。)


更新:

如果要再次删除该类,可以进行类似的循环并使用:


应考虑使Add和Delphi类函数可重用,以便也可以与其他类一起使用。

首先必须得到所有<代码> LI/CONT>标签:

var lis = document.getElementsByTagName('li');
然后在其上循环并执行以下操作:

for(var i = lis.length; i--;) {
    var li = lis[i];
    if(/\bdisabled\b/.test(li.className)) {
        li.className += ' hide';
    }
}
参考:

为什么我们不能使用
getElementsByClassName

因为它是


但您可以测试浏览器是否支持:


如果您只引用了一些
li
,则只使用If类:

if(/\bdisabled\b/.test(element.className)) {
    element.className += ' hide';
}
(在所有情况下,您还可以添加进一步的测试,以检查元素是否已经具有
hide
类。)


更新:

如果要再次删除该类,可以进行类似的循环并使用:


你应该考虑使Add和Delphi类函数可重用,以便也可以与其他类一起使用。

HMM,所有禁用的Li元素都需要一个隐藏类吗?你不能编辑CSS并像那样隐藏它们吗?或者使用JavaScript将类添加到HTML或BODY元素,然后在CSS中添加,例如:


HTML.hide-disabled LI.disabled{/*属性要隐藏这些元素*/}

Hmm,所有禁用的LI元素都需要一个hide类?你不能编辑CSS并像那样隐藏它们吗?或者使用JavaScript将类添加到HTML或BODY元素,然后在CSS中添加,例如:


HTML.hide-disabled LI.disabled{/*属性要隐藏这些元素*/}

请使用空格:LI.className+='hide';querySelectorAll并没有好多少:目前在FF3.1+、IE8+(仅在IE8标准模式下)和Safari 3.1+(参考模式下)中受支持@Brad Christie:这就是为什么我说必须首先测试
querySelectorAll
是否可用的原因。如果是的话,它可能会更快@李:刚在你写评论的时候修正了;)使用空格:li.className+='hide';querySelectorAll并没有好多少:目前在FF3.1+、IE8+(仅在IE8标准模式下)和Safari 3.1+(参考模式下)中受支持@Brad Christie:这就是为什么我说必须首先测试
querySelectorAll
是否可用的原因。如果是的话,它可能会更快@李:刚在你写评论的时候修正了;)你的意思是
getElementsByTagName
,请注意,IE9之前不支持
GetElementsByCassName
。是的,我收到js错误,因为无法识别该函数。@FelixKling&@Amen:已修复。我的道歉,这些天被jQuery破坏了。(虽然我可能只是修改了答案,因为FelixKling充分地回答了它)你的意思是
getElementsByTagName
,请注意,IE9之前不支持
getElementsByClassName
。是的,我收到js错误,因为该函数无法识别。@FelixKling&@Amen:已修复。我的道歉,这些天被jQuery破坏了。(尽管我可能只是修改一下答案,因为费利克斯克林已经充分回答了这个问题)当然我可以这么做。但这不是我要问的。我有一个选择列表。当有人选择一个带有该列表的标记时,用li或option标记一个被添加的禁用类。我想做的是添加一个额外的hide DynamicCallYok类,只是说,这是很长的路。。。就这些,我当然能做到。但这不是我要问的。我有一个选择列表。当有人选择一个带有该列表的标记时,用li或option标记一个被添加的禁用类。我想做的是添加一个额外的hide DynamicCallYok类,只是说,这是很长的路。。。这就是全部。