如何在JQUERY中从HTML文档中获取XML对象

how to get XML object from HTML document in JQUERY

本文关键字:获取 XML 对象 文档 HTML JQUERY 中从      更新时间:2023-09-26

我必须从ASPX页面中的以下HTML代码中检索jquery中的hier2对象

<div>
<hier2:hierarchy >
 <hier:x1></hier:x1>
<hier2:hierarchy >
</div>

我在IE 11中检索了document.all.hier2,它不工作

做这件事的最佳方法是什么。

简单地说:

document.getElementsByTagName("hier2:hierarchy"); 

返回包含所有hier2:hierarchy节点的节点列表。


更详细:

这些元素(或节点)是D文档O对象M模型(DOM)的一部分。在过去,IE(和其他)支持document.all。它现在已被弃用。如何遍历DOM。DOM是一个包含根及其子、孙等的树。

基础知识:

  • document:这是主对象。页面的。所有其他元素都是该根的后代
  • document.documentElement:表示页面的HTML-element

遍历:

  • document.getElementById:允许您根据其ID-属性选择单个元素
  • document.getElementsByTagName:允许您根据node name选择多个节点
  • document.getElementsByClassName:允许您根据节点的class选择多个节点
  • document.querySelector:使用css-selectors选择单个节点
  • document.querySelectorAll:同上,仅用于选择多个元素
  • childrenchildNodes:一个细微的区别,前者选择内容节点,而后者选择元素的所有直接子节点(以节点列表的形式)
  • parentNodeparentElement:选择当前元素的父元素
  • previousSiblingnextSibling:选择上一个或下一个元素

这里有更多选项:https://developer.mozilla.org/en-US/docs/Web/API/Element

一些例子:

普通:

var elements = document.getElementsByTagName("hier2:hierarchy");
for (var i = 0; i < elements.length; i++)
  {
    document.querySelector("#display").innerHTML += elements[i].nodeName; //select the display div using css selector #display
  }
<div>
  <hier2:hierarchy>
    <hier:x1></hier:x1>
  </hier2:hierarchy>
</div>
<div id="display"></div>

在jQuery 中

  $("hier2'':hierarchy").each(function() {
    $("#display").html(this.nodeName);
  });
//$("hier2'':hierarchy") is used to select the elements, mind the '' to escape!
//each is used to traverse all the elements.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <hier2:hierarchy>
    <hier:x1></hier:x1>
  </hier2:hierarchy>
</div>
<div id="display"></div>

此处特别提醒:在使用hier2:hierarchy时将失败。你需要用'':逃离:

$("hier2'':hierarchy")