From 8c92b8accd38c001bf508b2a5034dc7ea8747f7e Mon Sep 17 00:00:00 2001 From: ILyoan Date: Fri, 31 May 2013 17:16:01 +0900 Subject: [PATCH] Support css class selection (2) --- src/components/main/css/select_handler.rs | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) 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> for NodeSelectHandler { f(element_n.get_attr("class")) } } - + + fn node_has_class(&self, node: &AbstractNode, 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(&self, node: &AbstractNode, f: &fn(Option<&str>) -> R) -> R { if !node.is_element() {