diff options
author | ILyoan <ilyoan@gmail.com> | 2013-05-31 17:16:01 +0900 |
---|---|---|
committer | ILyoan <ilyoan@gmail.com> | 2013-06-12 14:05:44 +0900 |
commit | 8c92b8accd38c001bf508b2a5034dc7ea8747f7e (patch) | |
tree | 6c9cf781893fadea89c3e32e1f85f43e96cc5315 /src/components/main/css/select_handler.rs | |
parent | 97b5f5cdd60fefdb6fb5cc3f30298db31b914054 (diff) | |
download | servo-8c92b8accd38c001bf508b2a5034dc7ea8747f7e.tar.gz servo-8c92b8accd38c001bf508b2a5034dc7ea8747f7e.zip |
Support css class selection (2)
Diffstat (limited to 'src/components/main/css/select_handler.rs')
-rw-r--r-- | src/components/main/css/select_handler.rs | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/components/main/css/select_handler.rs b/src/components/main/css/select_handler.rs index 1b759241999..56312ee210b 100644 --- a/src/components/main/css/select_handler.rs +++ b/src/components/main/css/select_handler.rs @@ -94,7 +94,27 @@ impl SelectHandler<AbstractNode<LayoutView>> for NodeSelectHandler { f(element_n.get_attr("class")) } } - + + fn node_has_class(&self, node: &AbstractNode<LayoutView>, class: &str) -> bool { + if !node.is_element() { + fail!(~"attempting to style non-element node"); + } + do node.with_imm_element |element_n| { + match element_n.get_attr("class") { + None => false, + Some(existing_classes) => { + let mut ret = false; + for str::each_split_char(existing_classes, ' ') |s| { + if s == class { + ret = true; + break; + } + } + ret + } + } + } + } fn with_node_id<R>(&self, node: &AbstractNode<LayoutView>, f: &fn(Option<&str>) -> R) -> R { if !node.is_element() { |