Commit eabea8b
committed
feat: :checked pseudo-class support for <option>
Per spec, :checked matches a selected <option> in addition to a checked
checkbox/radio <input>, but SelectorItem's 'checked' case only ever
checked the INPUT tag.
Attribute-driven selection (the "selected" content attribute) invalidates
the query selector cache, so "option:checked" queries stay fresh. Selection changed
programmatically (option.selected / select.value / select.selectedIndex)
does not yet invalidate the cache - a pre-existing gap that also affects
select.selectedOptions (#1594), fixed separately.1 parent eac5a38 commit eabea8b
2 files changed
Lines changed: 33 additions & 3 deletions
File tree
- packages/happy-dom
- src/query-selector
- test/query-selector
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
270 | 271 | | |
271 | 272 | | |
272 | 273 | | |
273 | | - | |
274 | | - | |
275 | | - | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
276 | 281 | | |
277 | 282 | | |
278 | 283 | | |
| |||
Lines changed: 25 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
970 | 971 | | |
971 | 972 | | |
972 | 973 | | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
| 985 | + | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
973 | 998 | | |
974 | 999 | | |
975 | 1000 | | |
| |||
0 commit comments