Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Side by Side Diff: scoped_selectors.asciidoc

Issue 14109034: Recipes for using CSS Selectors with dart:html (Closed) Base URL: https://github.com/dart-lang/cookbook.git@master
Patch Set: Made changes based on reviewers' comments. Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 === Using CSS selectors within a limited scope
2
3 ==== Problem
4
5 You want to find elements that are contained by a particular element.
6
7 ==== Solution
8
9 Call the `query()` or `queryAll()` methods on a DOM element. Invoking one of
10 these methods on an element restricts the scope of the query to the that
11 element's descendants:
12
13 --------------------------------------------------------------------------------
14 containerElement.query(cssSelector);
15 containerElement.queryAll(cssSelector);
16 --------------------------------------------------------------------------------
17
18 ==== Examples
19
20 Consider the following table of user records:
21
22 --------------------------------------------------------------------------------
23 <table>
24 <tr><td>Jose</td><td class='status'>Accepted</td></tr>
25 <tr><td>Marie</td><td class='status'>Accepted</td></tr>
26 <tr><td>Kwame</td><td class='status'>Accepted</td></tr>
27 <tr><td>Rohan</td><td class='status'>Accepted</td></tr>
28 </table>
29 --------------------------------------------------------------------------------
30
31 The following code attaches an event handler to each <tr>. When a <tr> is
32 clicked, the text within the matching descendant <td> toggles:
33
34 --------------------------------------------------------------------------------
35 queryAll('tr').forEach((element) {
36 element.onClick.listen((event) {
37 var record = event.currentTarget.query('.status');
38 record.innerHtml = record.innerHtml == 'Accepted' ? 'Declined' : 'Accepted';
39 });
40 });
41 --------------------------------------------------------------------------------
42
43 Because the query is scoped to the just-clicked row, cells with the 'status'
44 class in in other rows are not affected.
45
46 Note the use of `queryAll()` as a top-level function in the code above. Used
47 in this manner, `queryAll()` is scoped to the entire document.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698