Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery无法从XML解析所有子元素/嵌套标记及其属性_Jquery_Xml_Xml Parsing_Nested - Fatal编程技术网

Jquery无法从XML解析所有子元素/嵌套标记及其属性

Jquery无法从XML解析所有子元素/嵌套标记及其属性,jquery,xml,xml-parsing,nested,Jquery,Xml,Xml Parsing,Nested,我有一个页面,其中列出了杂志新闻项目的详细信息,但有时会有一个链接到特定的杂志,其他时候可能会有多个 问题是jquery可以完美地解析XML,但当它涉及到子元素/链接的嵌套标记时……它就搞砸了。它没有列出所有的子节点 HTML $(文档).ready(函数(){ $.ajax({ 键入:“获取”, url:“news.xml”, cache:false, 数据类型:“xml”, 成功:函数(xml){ $(xml).find('item').each(function(){ var id=$(

我有一个页面,其中列出了杂志新闻项目的详细信息,但有时会有一个链接到特定的杂志,其他时候可能会有多个

问题是jquery可以完美地解析XML,但当它涉及到子元素/链接的嵌套标记时……它就搞砸了。它没有列出所有的子节点

HTML


$(文档).ready(函数(){
$.ajax({
键入:“获取”,
url:“news.xml”,
cache:false,
数据类型:“xml”,
成功:函数(xml){
$(xml).find('item').each(function(){
var id=$(this.attr('id');
var title=$(this.find('title').text();
var date=$(this.find('date').text();
var description=$(this.find('description').text();
如果(description.length>=250){
description=description.substring(0250)+'…';
}   
$(“#换页”)
.append($('').html(标题))
.append($('').html(日期))
.append($('

').html(说明)) .append($('

').html(name)); $(this).find('links').each(function(){ var name=$(this.find('link').attr('name'); var url=$(this.find('link').text(); $(“”).appendTo(“#换页”); }); }); } }); });
这里是XML

<news>
<item id="0">
<title>Main title 1</title>
<date>20 Aug 2010</date>
<description>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus nunc lacus, commodo sit amet euismod vitae, semper quis libero. Praesent nunc nibh, mollis nec elementum et, facilisis sit amet metus. Proin dignissim interdum dui vehicula dapibus. Mauris eget est sed odio blandit tempor vitae quis leo.
</description>
  <links>
   <link name="Hello">123.com</link>
   <link name="HelloJack">123.com</link>
  </links>
 </item>
  <item id="2">
    <title>Main title 2</title>
    <date>20 Aug 2010</date>
    <description>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus nunc lacus, commodo sit amet euismod vitae, semper quis libero. Praesent nunc nibh, mollis nec elementum et, facilisis sit amet metus. Proin dignissim interdum dui vehicula dapibus. Mauris eget est sed odio blandit tempor vitae quis leo.</description>
    <links>
      <link name="Hello">123.com</link>
    </links>
  </item>
</news>

主标题1
2010年8月20日
Lorem ipsum dolor sit amet,是一位杰出的献身者。Phasellus nunc lacus、amet euismod vitae、semper Qus libero。现在,我们需要一种新的设备。在交通工具的驾驶过程中获得贵宾待遇。莫里斯·埃吉特(Mauris eget)是一位温和的狮子座临时生活顾问。
123.com
123.com
主标题2
2010年8月20日
Lorem ipsum dolor sit amet,是一位杰出的献身者。Phasellus nunc lacus、amet euismod vitae、semper Qus libero。现在,我们需要一种新的设备。在交通工具的驾驶过程中获得贵宾待遇。莫里斯·埃吉特(Mauris eget)是一位温和的狮子座临时生活顾问。
123.com

这将提醒当前选择器的每个属性,而无需指定这些属性在其他任何地方:

$.each($(".mySelector"), function() {
    var nodes = this.attributes;
    for(var i=0; i<nodes.length; i++)
    {
      alert(nodes[i].nodeName);
      alert(nodes[i].nodeValue);
    }
});
$.each($(“.mySelector”),function(){
var节点=this.attributes;

对于(var i=0;i,这将提醒当前选择器的每个属性,而不必指定这些属性在其他任何地方:

$.each($(".mySelector"), function() {
    var nodes = this.attributes;
    for(var i=0; i<nodes.length; i++)
    {
      alert(nodes[i].nodeName);
      alert(nodes[i].nodeValue);
    }
});
$.each($(“.mySelector”),function(){
var节点=this.attributes;

对于(var i=0;i更不用说修复了问题

更改为:

$(this).find('links').each(function(){
      var name = $(this).find('link').attr('name');
   var url = $(this).find('link').text();
  $('<a href="'+url+'">'+name+'</a>').appendTo('#page-wrap');
$(this).find('links')。每个(函数(){
var name=$(this.find('link').attr('name');
var url=$(this.find('link').text();
$(“”).appendTo(“#换页”);

$(this.find('link')。每个(函数(){
var name=$(this.attr('name');
var url=$(this.text();
$(“”).appendTo(“#换页”);

没关系,问题已经解决了

更改为:

$(this).find('links').each(function(){
      var name = $(this).find('link').attr('name');
   var url = $(this).find('link').text();
  $('<a href="'+url+'">'+name+'</a>').appendTo('#page-wrap');
$(this).find('links')。每个(函数(){
var name=$(this.find('link').attr('name');
var url=$(this.find('link').text();
$(“”).appendTo(“#换页”);

$(this.find('link')。每个(函数(){
var name=$(this.attr('name');
var url=$(this.text();
$(“”).appendTo(“#换页”);

对不起,我想我问的问题不对,我的问题是如何解析所有嵌套标记:www.url1.com www.url2.com从上面的示例中,我希望jquery解析链接的子元素……对不起,我想我问的问题不对,我的问题是如何解析所有嵌套标记:www.url1.com www.url2.com根据上面的示例,我希望jquery解析链接的子元素…如下所示