2011-01-24 75 views
0

我'嘗試寫一個網格類行走時DOM怎麼樣的表現: enter image description here
就拿第一個單元格,它是類屬性將是「細胞R1 C1」,R1表示第一行和C1指第一列,然後我用這樣的代碼來控制一整排:mootools的:通過使用CSS類

gridContainer.getElements('.r1').addClass('selected'); 

所以我的問題是:是很好的做法,以做到這樣嗎?

回答

1

取決於瀏覽器和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函數。

+0

我們迫使我們的客戶殺了IE6&7,哈哈哈。 – kuangfuking 2011-01-25 01:06:21