[英]Javascript: Multiple GetElementByID's in one call
真的很简单的问题。 我有以下代码,并希望尽可能地将其合并。 无法让它工作但尝试使用逗号等。有没有办法在GetElementByID方法中调用多个ID? Javascript新手:/
$("#set50").live("click", function() {
document.getElementById("statusBox50").setAttribute("class", "statusBoxSelected");
document.getElementById("statusBox25").setAttribute("class", "statusBox");
document.getElementById("statusBox75").setAttribute("class", "statusBox");
document.getElementById("statusBox100").setAttribute("class", "statusBox");
$(".statusbar").animate({
width: '115px'
}, 500);
});
不,但是既然你正在使用jQuery,你可以使用它。 这会将statusBox
类添加到ID为statusBox25
, statusBox75
和statusBox100
:
$("#statusBox25, #statusBox75, #statusBox100").addClass('statusBox');
或者,如果要删除所有现有类并使用statusBox
替换它们,就像执行原始代码一样,可以使用:
$("#statusBox25, #statusBox75, #statusBox100").attr('class', 'statusBox');
有没有办法在GetElementByID方法中调用多个ID?
不,它是Id(小写d)
并且不要使用setAttribute
,除了IE的最新版本之外,它都被破坏了。
你正在使用jQuery,所以你可以使用它的辅助函数:
jQuery('#statusBox50').addClass('statusBoxSelected');
jQuery('#statusBox25, #statusBox75, #statusBox100').addClass('statusBox');
你应该可以这样做:
$("#set50").live("click", function() {
$("#statusBox50").addClass("selected");
$("#statusBox25, #statusBox75, #statusBox100").removeClass("selected");
$(".statusbar").animate({...});
});
请注意,我正在做一些与您不同的事情:我有一个“已选择”的类,我应用或删除,而不是设置 [statusBoxSelected | statusBox]的类。 这可能是class =“statusBox”的补充。
我还建议您查看其他不会像这样硬编码ID的方法。 例如:
$(".set50").live("click", function(evt) {
$('.statusBar').removeClass("selected");
$('#statusBar50').addClass("selected");
});
你甚至可以走得更远,并在“set”元素上有一个属性,其中包含状态栏应该设置的数量。
或者考虑使用HTML5进度条,以及一些垫片在不支持的浏览器中执行相同操作。
$("#set50").live("click", function() {
$("statusBox50").addClass("statusBoxSelected");
$("statusBox25").addClass"statusBox");
$("statusBox75").addClass( "statusBox");
$("statusBox100").addClass( "statusBox");
$(".statusbar").animate({
width: '115px'
}, 500);
});
这是你想要的吗?
.addClass
为所选元素添加一个类。[ docs ]
编辑 :正如你所说,你想要一个单一的。 只需为要添加类的所有元素分配一个类。 例如:我指定类adding
。 那么你可以添加类到这样的所有元素:
$('.adding').addClass('statusBox')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.