我'嘗試寫一個網格類行走時DOM怎麼樣的表現:
就拿第一個單元格,它是類屬性將是「細胞R1 C1」,R1表示第一行和C1指第一列,然後我用這樣的代碼來控制一整排:mootools的:通過使用CSS類
gridContainer.getElements('.r1').addClass('selected');
所以我的問題是:是很好的做法,以做到這樣嗎?
我'嘗試寫一個網格類行走時DOM怎麼樣的表現:
就拿第一個單元格,它是類屬性將是「細胞R1 C1」,R1表示第一行和C1指第一列,然後我用這樣的代碼來控制一整排:mootools的:通過使用CSS類
gridContainer.getElements('.r1').addClass('selected');
所以我的問題是:是很好的做法,以做到這樣嗎?
取決於瀏覽器和mootools版本。
但是,如果您想保留現有代碼,請使用.getElements("td.r1")
- 對於缺少getElementsByClassName和querySelectorAll的瀏覽器,更合適的選擇器會更好。
我問過類似的問題,在我的採訪MooTools的核心和油滑隊(對於V1.3)的法比奧科斯塔米蘭達,你可以在這裏閱讀他的回覆(底部!):http://fragged.org/intermoos-part-6-fabio-miranda-costa-gets-slick_1213.html
來拯救你點擊,有什麼用油滑現在更好的做法:
// 1
$$("#someid div.something");
// or 2
document.id("someid").getElements("div.something");
他的回答是:
在第一個例子:
- 如果瀏覽器有querySelectorAll方法,光滑 引擎會檢測到它並使用它的權利 走,快如閃電的
- 如果瀏覽器沒有它,總之,它會做 文件。 getElementById('someid')。getElementsByTagName('div') 對於每個找到的節點,它將檢查 類'something'是否存在。
第二個例子:
- 對於每一個瀏覽器,它會抓住ID爲「someid」的要素;
- 然後,如果瀏覽器具有querySelectorAll,它將使用此 方法從'someid' 上下文中抓取具有 'something'類的所有div;
- 如果瀏覽器不具有將使用的getElementsByTagName(「DIV」) 方法從「someid」背景和 每個節點發現它會 檢查的類 「東西」的存在。
所以,正如所見,第一個將大多數的瀏覽器更快 是 建議。從這次 採訪Firefox,Safari,Chrome, Opera和IE> = 8,都有 querySelectorAll函數。
我們迫使我們的客戶殺了IE6&7,哈哈哈。 – kuangfuking 2011-01-25 01:06:21