#[repr(C)]pub struct Node {Show 14 fields
eventtarget: EventTarget,
parent_node: MutNullableDom<Node>,
first_child: MutNullableDom<Node>,
last_child: MutNullableDom<Node>,
next_sibling: MutNullableDom<Node>,
prev_sibling: MutNullableDom<Node>,
owner_doc: MutNullableDom<Document>,
rare_data: DomRefCell<Option<Box<NodeRareData>>>,
child_list: MutNullableDom<NodeList>,
children_count: Cell<u32>,
flags: Cell<NodeFlags>,
inclusive_descendants_version: Cell<u64>,
ranges: WeakRangeVec,
style_and_layout_data: DomRefCell<Option<Box<StyleAndOpaqueLayoutData>>>,
}
Expand description
An HTML node.
Fields§
§eventtarget: EventTarget
The JavaScript reflector for this node.
parent_node: MutNullableDom<Node>
The parent of this node.
first_child: MutNullableDom<Node>
The first child of this node.
last_child: MutNullableDom<Node>
The last child of this node.
next_sibling: MutNullableDom<Node>
The next sibling of this node.
prev_sibling: MutNullableDom<Node>
The previous sibling of this node.
owner_doc: MutNullableDom<Document>
The document that this node belongs to.
rare_data: DomRefCell<Option<Box<NodeRareData>>>
Rare node data.
child_list: MutNullableDom<NodeList>
The live list of children return by .childNodes.
children_count: Cell<u32>
The live count of children of this node.
flags: Cell<NodeFlags>
A bitfield of flags for node items.
inclusive_descendants_version: Cell<u64>
The maximum version of any inclusive descendant of this node.
ranges: WeakRangeVec
A vector of weak references to Range instances of which the start or end containers are this node. No range should ever be found twice in this vector, even if both the start and end containers are this node.
style_and_layout_data: DomRefCell<Option<Box<StyleAndOpaqueLayoutData>>>
Style+Layout information.
Implementations§
source§impl Node
impl Node
sourcefn add_child(&self, new_child: &Node, before: Option<&Node>)
fn add_child(&self, new_child: &Node, before: Option<&Node>)
Adds a new child to the end of this node’s list of children.
Fails unless new_child
is disconnected from the tree.
pub fn clean_up_layout_data(&self)
sourcepub fn complete_remove_subtree(root: &Node, context: &UnbindContext<'_>)
pub fn complete_remove_subtree(root: &Node, context: &UnbindContext<'_>)
Clean up flags and unbind from tree.
sourcefn remove_child(&self, child: &Node, cached_index: Option<u32>)
fn remove_child(&self, child: &Node, cached_index: Option<u32>)
Removes the given child from this node’s list of children.
Fails unless child
is a child of this node.
pub fn to_untrusted_node_address(&self) -> UntrustedNodeAddress
pub fn to_opaque(&self) -> OpaqueNode
pub fn as_custom_element(&self) -> Option<Root<Dom<Element>>>
pub fn fire_synthetic_mouse_event_not_trusted(&self, name: DOMString)
pub fn parent_directionality(&self) -> String
source§impl Node
impl Node
fn rare_data(&self) -> Ref<'_, Option<Box<NodeRareData>>>
fn rare_data_mut(&self) -> RefMut<'_, Option<Box<NodeRareData>>>
fn ensure_rare_data(&self) -> RefMut<'_, Box<NodeRareData>>
sourcepub fn is_before(&self, other: &Node) -> bool
pub fn is_before(&self, other: &Node) -> bool
Returns true if this node is before other
in the same connected DOM
tree.
sourcepub fn registered_mutation_observers_mut(
&self
) -> RefMut<'_, Vec<RegisteredObserver>>
pub fn registered_mutation_observers_mut(
&self
) -> RefMut<'_, Vec<RegisteredObserver>>
Return all registered mutation observers for this node. Lazily initialize the raredata if it does not exist.
pub fn registered_mutation_observers(
&self
) -> Option<Ref<'_, Vec<RegisteredObserver>>>
sourcepub fn add_mutation_observer(&self, observer: RegisteredObserver)
pub fn add_mutation_observer(&self, observer: RegisteredObserver)
Add a new mutation observer for a given node.
sourcepub fn remove_mutation_observer(&self, observer: &MutationObserver)
pub fn remove_mutation_observer(&self, observer: &MutationObserver)
Removes the mutation observer for a given node.
sourcepub fn dump_indent(&self, indent: u32)
pub fn dump_indent(&self, indent: u32)
Dumps the node tree, for debugging, with indentation.
pub fn is_in_doc(&self) -> bool
pub fn is_in_shadow_tree(&self) -> bool
pub fn has_weird_parser_insertion_mode(&self) -> bool
pub fn set_weird_parser_insertion_mode(&self)
pub fn is_connected(&self) -> bool
sourcepub fn type_id(&self) -> NodeTypeId
pub fn type_id(&self) -> NodeTypeId
Returns the type ID of this node.
pub fn len(&self) -> u32
pub fn index(&self) -> u32
sourcepub fn has_parent(&self) -> bool
pub fn has_parent(&self) -> bool
Returns true if this node has a parent.
pub fn children_count(&self) -> u32
pub fn ranges(&self) -> &WeakRangeVec
pub fn is_doctype(&self) -> bool
pub fn get_flag(&self, flag: NodeFlags) -> bool
pub fn set_flag(&self, flag: NodeFlags, value: bool)
pub fn note_dirty_descendants(&self)
pub fn has_dirty_descendants(&self) -> bool
pub fn rev_version(&self)
pub fn dirty(&self, damage: NodeDamage)
sourcepub fn inclusive_descendants_version(&self) -> u64
pub fn inclusive_descendants_version(&self) -> u64
The maximum version number of this node’s descendants, including itself
sourcepub fn traverse_preorder(
&self,
shadow_including: ShadowIncluding
) -> TreeIterator ⓘ
pub fn traverse_preorder(
&self,
shadow_including: ShadowIncluding
) -> TreeIterator ⓘ
Iterates over this node and all its descendants, in preorder.
pub fn inclusively_following_siblings(
&self
) -> impl Iterator<Item = Root<Dom<Node>>>
pub fn inclusively_preceding_siblings(
&self
) -> impl Iterator<Item = Root<Dom<Node>>>
pub fn common_ancestor(
&self,
other: &Node,
shadow_including: ShadowIncluding
) -> Option<Root<Dom<Node>>>
pub fn is_inclusive_ancestor_of(&self, parent: &Node) -> bool
pub fn is_ancestor_of(&self, parent: &Node) -> bool
fn is_shadow_including_inclusive_ancestor_of(&self, node: &Node) -> bool
pub fn following_siblings(&self) -> impl Iterator<Item = Root<Dom<Node>>>
pub fn preceding_siblings(&self) -> impl Iterator<Item = Root<Dom<Node>>>
pub fn following_nodes(&self, root: &Node) -> FollowingNodeIterator ⓘ
pub fn preceding_nodes(&self, root: &Node) -> PrecedingNodeIterator ⓘ
pub fn descending_last_children(&self) -> impl Iterator<Item = Root<Dom<Node>>>
pub fn is_parent_of(&self, child: &Node) -> bool
pub fn to_trusted_node_address(&self) -> TrustedNodeAddress
sourcepub fn bounding_content_box(&self) -> Option<Rect<Au>>
pub fn bounding_content_box(&self) -> Option<Rect<Au>>
Returns the rendered bounding content box if the element is rendered, and none otherwise.
pub fn bounding_content_box_or_zero(&self) -> Rect<Au>
pub fn content_boxes(&self) -> Vec<Rect<Au>> ⓘ
pub fn client_rect(&self) -> Rect<i32>
pub fn scroll_area(&self) -> Rect<i32>
pub fn scroll_offset(&self) -> Vector2D<f32>
pub fn before(&self, nodes: Vec<NodeOrString>) -> Result<(), Error>
pub fn after(&self, nodes: Vec<NodeOrString>) -> Result<(), Error>
pub fn replace_with(&self, nodes: Vec<NodeOrString>) -> Result<(), Error>
pub fn prepend(&self, nodes: Vec<NodeOrString>) -> Result<(), Error>
pub fn append(&self, nodes: Vec<NodeOrString>) -> Result<(), Error>
pub fn replace_children(&self, nodes: Vec<NodeOrString>) -> Result<(), Error>
pub fn query_selector(
&self,
selectors: DOMString
) -> Result<Option<Root<Dom<Element>>>, Error>
sourcepub fn query_selector_iter(
&self,
selectors: DOMString
) -> Result<QuerySelectorIterator, Error>
pub fn query_selector_iter(
&self,
selectors: DOMString
) -> Result<QuerySelectorIterator, Error>
https://dom.spec.whatwg.org/#scope-match-a-selectors-string Get an iterator over all nodes which match a set of selectors Be careful not to do anything which may manipulate the DOM tree whilst iterating, otherwise the iterator may be invalidated.
pub fn query_selector_all(
&self,
selectors: DOMString
) -> Result<Root<Dom<NodeList>>, Error>
pub fn ancestors(&self) -> impl Iterator<Item = Root<Dom<Node>>>
sourcepub fn inclusive_ancestors(
&self,
shadow_including: ShadowIncluding
) -> impl Iterator<Item = Root<Dom<Node>>>
pub fn inclusive_ancestors(
&self,
shadow_including: ShadowIncluding
) -> impl Iterator<Item = Root<Dom<Node>>>
https://dom.spec.whatwg.org/#concept-shadow-including-inclusive-ancestor
pub fn owner_doc(&self) -> Root<Dom<Document>>
pub fn set_owner_doc(&self, document: &Document)
pub fn containing_shadow_root(&self) -> Option<Root<Dom<ShadowRoot>>>
pub fn set_containing_shadow_root(&self, shadow_root: Option<&ShadowRoot>)
pub fn is_in_html_doc(&self) -> bool
pub fn is_connected_with_browsing_context(&self) -> bool
pub fn children(&self) -> impl Iterator<Item = Root<Dom<Node>>>
pub fn rev_children(&self) -> impl Iterator<Item = Root<Dom<Node>>>
pub fn child_elements(&self) -> impl Iterator<Item = Root<Dom<Element>>>
pub fn remove_self(&self)
pub fn unique_id(&self) -> String
pub fn summarize(&self) -> NodeInfo
sourcepub fn insert_cell_or_row<F, G, I>(
&self,
index: i32,
get_items: F,
new_child: G
) -> Result<Root<Dom<HTMLElement>>, Error>where
F: Fn() -> Root<Dom<HTMLCollection>>,
G: Fn() -> Root<Dom<I>>,
I: DerivedFrom<Node> + DerivedFrom<HTMLElement> + DomObject,
pub fn insert_cell_or_row<F, G, I>(
&self,
index: i32,
get_items: F,
new_child: G
) -> Result<Root<Dom<HTMLElement>>, Error>where
F: Fn() -> Root<Dom<HTMLCollection>>,
G: Fn() -> Root<Dom<I>>,
I: DerivedFrom<Node> + DerivedFrom<HTMLElement> + DomObject,
Used by HTMLTableSectionElement::InsertRow
and HTMLTableRowElement::InsertCell
sourcepub fn delete_cell_or_row<F, G>(
&self,
index: i32,
get_items: F,
is_delete_type: G
) -> Result<(), Error>where
F: Fn() -> Root<Dom<HTMLCollection>>,
G: Fn(&Element) -> bool,
pub fn delete_cell_or_row<F, G>(
&self,
index: i32,
get_items: F,
is_delete_type: G
) -> Result<(), Error>where
F: Fn() -> Root<Dom<HTMLCollection>>,
G: Fn(&Element) -> bool,
Used by HTMLTableSectionElement::DeleteRow
and HTMLTableRowElement::DeleteCell
pub fn get_stylesheet(&self) -> Option<Arc<Stylesheet>>
pub fn get_cssom_stylesheet(&self) -> Option<Root<Dom<CSSStyleSheet>>>
pub fn is_styled(&self) -> bool
pub fn is_display_none(&self) -> bool
pub fn style(&self) -> Option<Arc<ComputedValues>>
source§impl Node
impl Node
pub fn reflect_node<N>(node: Box<N>, document: &Document) -> Root<Dom<N>>where
N: DerivedFrom<Node> + DomObject + DomObjectWrap,
pub fn new_inherited(doc: &Document) -> Node
pub fn new_document_node() -> Node
fn new_(flags: NodeFlags, doc: Option<&Document>) -> Node
pub fn adopt(node: &Node, document: &Document)
pub fn ensure_pre_insertion_validity(
node: &Node,
parent: &Node,
child: Option<&Node>
) -> Result<(), Error>
pub fn pre_insert(
node: &Node,
parent: &Node,
child: Option<&Node>
) -> Result<Root<Dom<Node>>, Error>
fn insert(
node: &Node,
parent: &Node,
child: Option<&Node>,
suppress_observers: SuppressObserver
)
pub fn replace_all(node: Option<&Node>, parent: &Node)
pub fn string_replace_all(string: DOMString, parent: &Node)
fn pre_remove(child: &Node, parent: &Node) -> Result<Root<Dom<Node>>, Error>
fn remove(node: &Node, parent: &Node, suppress_observers: SuppressObserver)
pub fn clone(
node: &Node,
maybe_doc: Option<&Document>,
clone_children: CloneChildrenFlag
) -> Root<Dom<Node>>
sourcepub fn child_text_content(&self) -> DOMString
pub fn child_text_content(&self) -> DOMString
sourcepub fn descendant_text_content(&self) -> DOMString
pub fn descendant_text_content(&self) -> DOMString
pub fn collect_text_contents<T: Iterator<Item = Root<Dom<Node>>>>(
iterator: T
) -> DOMString
pub fn namespace_to_string(namespace: Namespace) -> Option<DOMString>
pub fn locate_namespace(node: &Node, prefix: Option<DOMString>) -> Namespace
Trait Implementations§
source§impl Castable for Node
impl Castable for Node
source§impl HasParent for Node
impl HasParent for Node
source§fn as_parent(&self) -> &EventTarget
fn as_parent(&self) -> &EventTarget
This is used in a type assertion to ensure that the source and webidls agree as to what the parent type is
type Parent = EventTarget
source§impl IDLInterface for Node
impl IDLInterface for Node
source§impl MallocSizeOf for Node
impl MallocSizeOf for Node
source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
source§impl MutDomObject for Node
impl MutDomObject for Node
source§unsafe fn init_reflector(&self, obj: *mut JSObject)
unsafe fn init_reflector(&self, obj: *mut JSObject)
source§impl NodeMethods for Node
impl NodeMethods for Node
fn NodeType(&self) -> u16
fn NodeName(&self) -> DOMString
fn BaseURI(&self) -> USVString
fn IsConnected(&self) -> bool
fn GetOwnerDocument(&self) -> Option<Root<Dom<Document>>>
fn GetRootNode(&self, options: &GetRootNodeOptions) -> Root<Dom<Node>>
fn GetParentNode(&self) -> Option<Root<Dom<Node>>>
fn GetParentElement(&self) -> Option<Root<Dom<Element>>>
fn HasChildNodes(&self) -> bool
fn ChildNodes(&self) -> Root<Dom<NodeList>>
fn GetFirstChild(&self) -> Option<Root<Dom<Node>>>
fn GetLastChild(&self) -> Option<Root<Dom<Node>>>
fn GetPreviousSibling(&self) -> Option<Root<Dom<Node>>>
fn GetNextSibling(&self) -> Option<Root<Dom<Node>>>
fn GetNodeValue(&self) -> Option<DOMString>
fn SetNodeValue(&self, val: Option<DOMString>)
fn GetTextContent(&self) -> Option<DOMString>
fn SetTextContent(&self, value: Option<DOMString>)
fn InsertBefore(
&self,
node: &Node,
child: Option<&Node>
) -> Result<Root<Dom<Node>>, Error>
fn AppendChild(&self, node: &Node) -> Result<Root<Dom<Node>>, Error>
fn ReplaceChild(
&self,
node: &Node,
child: &Node
) -> Result<Root<Dom<Node>>, Error>
fn RemoveChild(&self, node: &Node) -> Result<Root<Dom<Node>>, Error>
fn Normalize(&self)
fn CloneNode(&self, deep: bool) -> Result<Root<Dom<Node>>, Error>
fn IsEqualNode(&self, maybe_node: Option<&Node>) -> bool
fn IsSameNode(&self, other_node: Option<&Node>) -> bool
fn CompareDocumentPosition(&self, other: &Node) -> u16
fn Contains(&self, maybe_other: Option<&Node>) -> bool
fn LookupPrefix(&self, namespace: Option<DOMString>) -> Option<DOMString>
fn LookupNamespaceURI(&self, prefix: Option<DOMString>) -> Option<DOMString>
fn IsDefaultNamespace(&self, namespace: Option<DOMString>) -> bool
source§impl PartialEq<Node> for Node
impl PartialEq<Node> for Node
source§impl<'a> Serialize for &'a Node
impl<'a> Serialize for &'a Node
source§fn serialize<S: Serializer>(
&self,
serializer: &mut S,
traversal_scope: TraversalScope
) -> Result<()>
fn serialize<S: Serializer>(
&self,
serializer: &mut S,
traversal_scope: TraversalScope
) -> Result<()>
source§impl ToJSValConvertible for Node
impl ToJSValConvertible for Node
source§impl VirtualMethods for Node
impl VirtualMethods for Node
source§fn super_type(&self) -> Option<&dyn VirtualMethods>
fn super_type(&self) -> Option<&dyn VirtualMethods>
source§fn children_changed(&self, mutation: &ChildrenMutation<'_>)
fn children_changed(&self, mutation: &ChildrenMutation<'_>)
source§fn unbind_from_tree(&self, context: &UnbindContext<'_>)
fn unbind_from_tree(&self, context: &UnbindContext<'_>)
source§fn attribute_mutated(&self, attr: &Attr, mutation: AttributeMutation<'_>)
fn attribute_mutated(&self, attr: &Attr, mutation: AttributeMutation<'_>)
source§fn attribute_affects_presentational_hints(&self, attr: &Attr) -> bool
fn attribute_affects_presentational_hints(&self, attr: &Attr) -> bool
true
if given attribute attr
affects style of the
given element.source§fn parse_plain_attribute(&self, name: &LocalName, value: DOMString) -> AttrValue
fn parse_plain_attribute(&self, name: &LocalName, value: DOMString) -> AttrValue
name
on this element.