var s1 = '<REQUEST><HEAD></HEAD><DATA></DATA></REQUEST>';
var jsonContent = $(s1);
for (var i=0;i<jsonContent.length;i++) {
console.log(jsonContent[i]);
}
输出 [data]
为什么没有head,因为s1是字符串,$(s1),这里s1被当作html来处理了,而head节点又是html中的特殊节点。
以上都是推测,总结一句话就是对s1的处理要当成xml,而不是html。
下面是操作xml的正确姿势
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script> $(function () { var s1 = '<REQUEST><HEAD></HEAD><DATA></DATA></REQUEST>'; var xmlContent = jQuery.parseXML(s1); var $xml = $(xmlContent); console.log($xml); var $root = $xml.children(); console.log($root); var $items = $root.children(); console.log($items); for (var i = 0; i < $items.length; i++) { console.log($items[i]); } }); </script>
已采纳 谢谢
还有个问题 跟这个一起的
data = "<KSDM></KSDM><YYRQ></YYRQ>";
var xmlData = jQuery.parseXML(data);
for (var i=0;i<xmlData.length;i++) {
console.log(xmlData[i]);
}
报错 : jquery.js:2 Uncaught Error: Invalid XML: <KSDM></KSDM><YYRQ></YYRQ>
这是为什么
@qxm9423:
刚刚博客园网络抽风了,
XML要有一个根节点。
@写代码的小2B: 好吧 我那会也猜到估计是这样 可是这里我是想把这个作为一个变量值等传入值后再放进那个根节点里去的 这样的话就不行了是吧
看不懂在说啥.谁能看懂的来说说