OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE html> |
| 2 |
| 3 <html> |
| 4 <ol> |
| 5 <li>Head</li> |
| 6 <li>Shoulders</li> |
| 7 <li>Knees</li> |
| 8 <li>Toes</li> |
| 9 </ol> |
| 10 |
| 11 <body> |
| 12 <script type="application/dart"> |
| 13 import 'dart:html'; |
| 14 |
| 15 List<Element> nextSiblings(item) { |
| 16 Element nextElement = item.nextElementSibling; |
| 17 return item.parent.children.skipWhile((i) => i != nextElement).toList(); |
| 18 } |
| 19 |
| 20 List<Element> previousSiblings(item) { |
| 21 return item.parent.children.takeWhile((i) => i != item).toList(); |
| 22 } |
| 23 |
| 24 void main() { |
| 25 LIElement knees = query('ol > li:nth-child(3)'); |
| 26 |
| 27 // Parent. |
| 28 assert(knees.parent.tagName == 'OL'); |
| 29 assert(knees.parent.children.length == 4); |
| 30 |
| 31 // Immediate neighbors. |
| 32 assert(knees.nextElementSibling.text == 'Toes'); |
| 33 assert(knees.previousElementSibling.text == 'Shoulders'); |
| 34 |
| 35 // Siblings. |
| 36 List<Element> prev = previousSiblings(knees); |
| 37 assert(prev.first.text == 'Head'); |
| 38 assert(prev.last.text == 'Shoulders'); |
| 39 assert(nextSiblings(knees).first.text == 'Toes'); |
| 40 } |
| 41 </script> |
| 42 <script src="packages/browser/dart.js"></script> |
| 43 </body> |
| 44 </html> |
OLD | NEW |