繁体   English   中英

Javascript:一次调用中有多个GetElementByID

[英]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为statusBox25statusBox75statusBox100

$("#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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM