jquery和xml。将节点获取为列表项

jquery和xml。将节点获取为列表项,jquery,xml,parsing,html-lists,Jquery,Xml,Parsing,Html Lists,我正在尝试解析一些xml,大部分都很好。但是,我在将节点放入和创建列表项时遇到问题。到目前为止,我的代码类似于 $(xml).find('section1').each(function (i) { var myLink = $(xml).find('link').text(); $('#set1').find('ul').eq(i).append("<li>"+myLink+"</li>"); }); $(xml).find('section1')。每个(

我正在尝试解析一些xml,大部分都很好。但是,我在将节点放入和创建列表项时遇到问题。到目前为止,我的代码类似于

$(xml).find('section1').each(function (i) {
   var myLink = $(xml).find('link').text();
   $('#set1').find('ul').eq(i).append("<li>"+myLink+"</li>");
});
$(xml).find('section1')。每个(函数(i){
var myLink=$(xml).find('link').text();
$(“#set1”).find('ul').eq(i).追加(“
  • ”+myLink+”
  • ”); });
    但实际情况是,它将所有“MyLink”节点放在一个
  • 中。对于为每个
    myLink
    节点装入
  • 有什么想法吗


    谢谢

    也许您需要在循环中将
    $(xml)
    更改为
    $(this)

    然后修复追加代码(您只有一个列表,对吗?如果是,请删除
    .eq
    内容),如下所示:

    var $list = $('#set1').find('ul');
    
    $(xml).find('section1').each(function () {
       var myLink = $(this).find('link').text();
       $list.append("<li>"+myLink+"</li>");
    });
    
    var$list=$('#set1')。查找('ul');
    $(xml).find('section1')。each(函数(){
    var myLink=$(this.find('link').text();
    $list.append(“
  • ”+myLink+“
  • ”); });
    如果可行,您可以将其简化为:

    var $list = $('#set1').find('ul');
    
    $(xml).find('section1 link').each(function () {
       var myLink = $(this).text();
       $list.append("<li>"+myLink+"</li>");
    });
    
    var$list=$('#set1')。查找('ul');
    $(xml).find('section1 link')。每个(函数(){
    var myLink=$(this.text();
    $list.append(“
  • ”+myLink+“
  • ”); });

    也许进一步使用
    $.map

    也许您需要在循环内部将
    $(xml)
    更改为
    $(this)

    然后修复追加代码(您只有一个列表,对吗?如果是,请删除
    .eq
    内容),如下所示:

    var $list = $('#set1').find('ul');
    
    $(xml).find('section1').each(function () {
       var myLink = $(this).find('link').text();
       $list.append("<li>"+myLink+"</li>");
    });
    
    var$list=$('#set1')。查找('ul');
    $(xml).find('section1')。each(函数(){
    var myLink=$(this.find('link').text();
    $list.append(“
  • ”+myLink+“
  • ”); });
    如果可行,您可以将其简化为:

    var $list = $('#set1').find('ul');
    
    $(xml).find('section1 link').each(function () {
       var myLink = $(this).text();
       $list.append("<li>"+myLink+"</li>");
    });
    
    var$list=$('#set1')。查找('ul');
    $(xml).find('section1 link')。每个(函数(){
    var myLink=$(this.text();
    $list.append(“
  • ”+myLink+“
  • ”); });

    也许还可以进一步使用
    $.map

    ,以防这个错误发生。第二行应该是$('set1')。find('ul')。eq(i)。append(“
  • ”+myLink+”
  • ”)@用户:仅供参考:您可以通过单击标签列表下方的
    edit
    来编辑您的问题,以防未通过正确的选项。第二行应该是$('set1')。find('ul')。eq(i)。append(“
  • ”+myLink+”
  • ”)@用户:仅供参考:您可以通过单击标签列表下方的
    edit
    来编辑您的问题谢谢您的回复。实际上,我正在尝试为每个节点创建一个新的列表项。ex my xml是我的标题1路径标题1标题2,因此这两个链接将各自成为自己的列表项。然而,它们都被放在一个单一的列表中。这与我的操作方式有关,但不确定如何更改它才能工作。您的代码,
    $('#set1')。find('ul')。eq(I)
    ,意味着您有许多单独的列表(ul)。如果你只有一个,你不应该在这里使用
    .eq(i)
    。谢谢你的回复。实际上,我正在尝试为每个节点创建一个新的列表项。ex my xml是我的标题1路径标题1标题2,因此这两个链接将各自成为自己的列表项。然而,它们都被放在一个单一的列表中。这与我的操作方式有关,但不确定如何更改它才能工作。您的代码,
    $('#set1')。find('ul')。eq(I)
    ,意味着您有许多单独的列表(ul)。如果只有一个,则不应在此处使用
    .eq(i)