2014-02-26 120 views
1

我需要遍歷HTML中的複選框,以便可以檢測到checked/not-checked狀態,但一直未能找到如何執行此操作的示例。我想它是快速的,它發生在我身上,將元素引用存儲在索引列表中可能會服務,但我會以編程方式構建列表。Dart:如何遍歷DOM元素

我是HTML,CSS和Dart的新手。

我的HTML:

<div id="check-boxes"> 
    <input id="B12" type="checkbox" checked="checked"> 
    <label for="B12">B12&nbsp;&nbsp;</label> 
    <input id="B10" type="checkbox" checked="checked"> 
    <label for="B10">B10&nbsp;&nbsp;</label> 
    <input id="B8" type="checkbox" checked="checked"> 
    <label for="B8">B8&nbsp;&nbsp;&nbsp;</label> 
    <input id="BBW" type="checkbox" checked="checked"> 
    <label for="BBW">Wide&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label> 
    <input id="freeze" type="checkbox"> 
    <label id="lblFreeze" for="freeze">Freeze</label> 
</div> 

(其實我不希望包括最後複選框ID =凍結。)

回答

5

您可以使用:

// retrieve checkboxes with a CSS selector 
final checkBoxes = querySelectorAll('#check-boxes input[type=checkbox]'); 

// iterate over the checkboxes 
checkBoxes.forEach((checkbox) { 
    // do something 
}); 

// iterate over the checked checkboxes 
checkBoxes.where((e) => e.checked).forEach((checkbox) { 
    // do something 
}); 
+2

或者如果你想迭代只在checke d的,使用'querySelector('#複選框輸入[checked]');' – doodeec

+0

很好的解決方案我沒有看到它之前,我發佈我的 –

+0

不應該是「querySelectorAll」 –

2

我會做這個方式

import 'dart:html'; 

void main(){ 

    //Get all checkboxes in a list 
    var all_checkboxes = querySelectorAll('#check-boxes input[type="checkbox"]'); 
    //Loop through your list 
    all_checkboxes.forEach((CheckboxInputElement el){ 
     //do any logic you want here 
     if (el.checked == true){} 
    }); 
}