Index: recipes/web/html/manipulating_queryAll_results.html |
diff --git a/recipes/web/html/manipulating_queryAll_results.html b/recipes/web/html/manipulating_queryAll_results.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..23a43893de2a303b15ad84cf5a6575f684d8f8ca |
--- /dev/null |
+++ b/recipes/web/html/manipulating_queryAll_results.html |
@@ -0,0 +1,59 @@ |
+<!DOCTYPE html> |
+ |
+<html> |
+ <body> |
+ <ol> |
+ <li>Google</li> |
+ <li>StackOverflow</li> |
+ <li>Reddit</li> |
+ <li>Github</li> |
+ </ol> |
+ |
+ <script type="application/dart"> |
+ import 'dart:html'; |
+ |
+ void doSomethingWith(element) {} |
+ |
+ void main() { |
+ List<Element> elements = queryAll('li'); |
+ |
+ // Index. |
+ assert(elements[2].innerHtml == 'Reddit'); |
+ assert(elements.last.innerHtml == 'Github'); |
+ assert(elements.first.innerHtml == 'Google'); |
+ |
+ // Iterate. |
+ for (var element in elements) { |
+ doSomethingWith(element); |
+ } |
+ |
+ var sites = elements.map((site) => site.innerHtml); |
+ assert(sites.join(', ') == "Google, StackOverflow, Reddit, Github"); |
+ |
+ sites = elements.reversed.where((site) => site.innerHtml.length != 6); |
+ assert(sites.map((site) => site.innerHtml).first == "StackOverflow"); |
+ |
+ // Sublist. |
+ var sublist = elements.sublist(1, 3); |
+ assert(sublist.first.innerHtml == 'StackOverflow'); |
+ assert(sublist.last.innerHtml == 'Reddit'); |
+ |
+ // Call predicates. |
+ assert(elements.any((element) => element.innerHtml.length == 6)); |
+ assert(elements.every((element) => element.innerHtml.length == 6) == false); |
+ |
+ // Search. |
+ assert(elements.lastWhere((element) => element.innerHtml.length == 6).innerHtml == 'Github'); |
+ |
+ // The list of results is readonly. |
+ try { |
+ elements.length = 2; |
+ } catch(e) { |
+ assert(e.message == 'Cannot resize immutable List.'); |
+ } |
+ } |
+ |
+ </script> |
+ <script src="packages/browser/dart.js"></script> |
+ </body> |
+</html> |