Cleanup Node::query_selector.

This commit is contained in:
Ms2ger 2014-12-05 14:58:48 +01:00
parent ea907c1311
commit 54c0601950

View file

@ -738,15 +738,12 @@ impl<'a> NodeHelpers<'a> for JSRef<'a, Node> {
// Step 3. // Step 3.
Ok(ref selectors) => { Ok(ref selectors) => {
let root = self.ancestors().last().unwrap_or(self.clone()); let root = self.ancestors().last().unwrap_or(self.clone());
for node in root.traverse_preorder() { Ok(root.traverse_preorder()
if node.is_element() && matches(selectors, &node, &mut None) { .filter_map(ElementCast::to_ref)
let elem: JSRef<Element> = ElementCast::to_ref(node).unwrap(); .find(|element| matches(selectors, &NodeCast::from_ref(*element), &mut None))
return Ok(Some(Temporary::from_rooted(elem))); .map(Temporary::from_rooted))
}
}
} }
} }
Ok(None)
} }
/// Get an iterator over all nodes which match a set of selectors /// Get an iterator over all nodes which match a set of selectors