簡體   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