Javascript 我正在尝试将一个类添加到一个li标记中,该标记具有一个禁用的类
如何编写JavaScript条件语句: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'
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类,只是说,这是很长的路。。。这就是全部。