2014-02-26 168 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){} 
    }); 
}