2012-11-09 45 views
0

我有一個簡單的函數,檢查選定的div編號,並且如果一個特定的div存在執行動作:重新構建JavaScript數組

function checkContent_m(){ 
var mItems = [document.getElementById('m_round1'),document.getElementById('m_round2'),document.getElementById('m_round3'),document.getElementById('m_round4'), 
document.getElementById('m_round5'),document.getElementById('m_round6'),document.getElementById('m_round7'),document.getElementById('m_round8')]; 

if (mItems.length > 0){ 
     document.getElementById('m_div').style.display = "block";  
} 
else{ 
    document.getElementById('m_div').style.display = "none"; 
} 

}

在我看來,有可能是一個讓我更有效地構建陣列。我將如何構建一個正則表達式,這將是一個等價於:

document.getElementById('m_round'+ '*') 

這樣的說法,讓我加入的「m_round」 div的數量不受限制,而不必修改我的js函數。

+0

這裏的傳統知識是將一個通用類應用於所有你想要的元素,然後用'document.getElementsByClassName(「myClass」)'選擇它們。 – apsillers

+2

這隻適用於支持HTML5的瀏覽器。 –

+0

爲什麼測試'mItems.length> 0'?它永遠是真的。 –

回答

3

考慮使用jQuery。然後選擇ID的具有類似名稱是微不足道的......

$('[id^="m_round"]') 

當然,你也可以給所有的元素,你要選擇的同一類,然後選擇他們的方式......

$('.m_round') 
+0

絕對是這樣做的正確方法.. – redShadow

+0

並且該語法將類似於「var = $('[ ID^= 「m_round」]');」 ? – kjarsenal

+0

是的,這將爲您帶來一個jQuery對象,它代表了包含'm_round'的ID和ID。 @kjarsenal – 11684