Javascript:一次调用中有多个GetElementByID

时间:2011-09-05 06:25:50

标签: javascript jquery html css

非常简单的问题。我有以下代码,并希望尽可能地将其合并。无法让它工作但尝试使用逗号等。有没有办法在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);    
});

4 个答案:

答案 0 :(得分:4)

不,但是既然你正在使用jQuery,你可以使用它。这会将statusBox类添加到ID为statusBox25statusBox75statusBox100的元素中:

$("#statusBox25, #statusBox75, #statusBox100").addClass('statusBox');

或者,如果您要删除所有现有类并使用statusBox替换所有类,就像您原来的代码一样,您可以使用:

$("#statusBox25, #statusBox75, #statusBox100").attr('class', 'statusBox');

答案 1 :(得分:1)

  

有没有办法在GetElementByID方法中调用多个ID?

不,它是Id(小写d)

不要使用setAttribute,除了最新版本的IE之外,它已被破坏。

您正在使用jQuery,因此您可以使用其辅助函数:

jQuery('#statusBox50').addClass('statusBoxSelected');
jQuery('#statusBox25, #statusBox75, #statusBox100').addClass('statusBox');

答案 2 :(得分:0)

您应该可以执行以下操作:

$("#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进度条,以及一些垫片在不受支持的浏览器中执行相同操作。

答案 3 :(得分:-1)

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