diff options
Diffstat (limited to 'src')
-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() { |