| Index: recipes/web/html/traversing_from_current_position.html
|
| diff --git a/recipes/web/html/traversing_from_current_position.html b/recipes/web/html/traversing_from_current_position.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7f2990783af483031d40e47f92c55e1078802364
|
| --- /dev/null
|
| +++ b/recipes/web/html/traversing_from_current_position.html
|
| @@ -0,0 +1,44 @@
|
| +<!DOCTYPE html>
|
| +
|
| +<html>
|
| + <ol>
|
| + <li>Head</li>
|
| + <li>Shoulders</li>
|
| + <li>Knees</li>
|
| + <li>Toes</li>
|
| + </ol>
|
| +
|
| + <body>
|
| + <script type="application/dart">
|
| + import 'dart:html';
|
| +
|
| + List<Element> nextSiblings(item) {
|
| + Element nextElement = item.nextElementSibling;
|
| + return item.parent.children.skipWhile((i) => i != nextElement).toList();
|
| + }
|
| +
|
| + List<Element> previousSiblings(item) {
|
| + return item.parent.children.takeWhile((i) => i != item).toList();
|
| + }
|
| +
|
| + void main() {
|
| + LIElement knees = query('ol > li:nth-child(3)');
|
| +
|
| + // Parent.
|
| + assert(knees.parent.tagName == 'OL');
|
| + assert(knees.parent.children.length == 4);
|
| +
|
| + // Immediate neighbors.
|
| + assert(knees.nextElementSibling.text == 'Toes');
|
| + assert(knees.previousElementSibling.text == 'Shoulders');
|
| +
|
| + // Siblings.
|
| + List<Element> prev = previousSiblings(knees);
|
| + assert(prev.first.text == 'Head');
|
| + assert(prev.last.text == 'Shoulders');
|
| + assert(nextSiblings(knees).first.text == 'Toes');
|
| + }
|
| + </script>
|
| + <script src="packages/browser/dart.js"></script>
|
| + </body>
|
| +</html>
|
|
|