2011-09-05 27 views
1

真的很簡單的問題。我有以下代碼,並希望儘可能地將其合併。不能讓它工作,雖然..嘗試使用逗號等。有沒有辦法在GetElementByID方法中調用多個ID? Javascript新功能:/Javascript:多個GetElementByID在一個電話

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

不,但由於您無論如何都在使用jQuery,您可以使用它。這將statusBox類添加到用的ID statusBox25statusBox75的元素,並statusBox100

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

另外,如果你想刪除所有現有的類,並與statusBox取代他們都喜歡你原來的代碼做,你可以這樣做:

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

謝謝!完美工作 – Zakman411

-1
$("#set50").live("click", function() { 
    $("statusBox50").addClass("statusBoxSelected"); 
    $("statusBox25").addClass"statusBox"); 
    $("statusBox75").addClass("statusBox"); 
    $("statusBox100").addClass("statusBox"); 
    $(".statusbar").animate({ 
     width: '115px' 
    }, 500);  
}); 

是這款U想要什麼?

.addClass增加了一個類所選擇的元素[docs]

EDIT: 正如ü說ü希望單。 只需將一個類分配給所有要添加該類的元素。例如:我分配類adding。那麼在哪裏addclass像這樣所有元素:

$('.adding').addClass('statusBox') 
+0

@downvoted請原因? – kritya

+2

因爲它沒有回答這個問題:如何不重複幾次呼叫。它包含一個語法錯誤。 (不是說downvote是我,順便說一句)。 –

+0

看着編輯。這是你想要的嗎? – kritya

1

有沒有辦法來調用多個ID中的getElementById方法?

不,它是編號(以小寫d)

並且不使用setAttribute,它所有,但最新版本的IE被打破。

你使用jQuery,所以你可以使用它的輔助功能:

jQuery('#statusBox50').addClass('statusBoxSelected'); 
jQuery('#statusBox25, #statusBox75, #statusBox100').addClass('statusBox'); 
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"); 
}); 

你可以走得更遠,並且對包含在狀態欄應設置爲量「設置」元素的屬性。

或者考慮使用HTML5進度條,以及一些墊片在不支持的瀏覽器中執行相同操作。