【问题标题】:Using insertAfter() in jQuery在 jQuery 中使用 insertAfter()
【发布时间】:2012-07-31 01:53:59
【问题描述】:

我有这个 XML 文件,

<tour title="Bavaria, Austrian, and the Alps" baseCost="1799.99">
<availability start="2011/03/25" end="2011/9/30"/>
<description>

</description>

<stop day="1">
<title>Munich, Germany. </title>

<description></description>
<latitude>48.15</latitude>
<longitude>11.5833333</longitude>
<hotels>
<hotel name="Europa Hotel" stars="3" premium="0.0"/>
<hotel name="Excelsior Hotel" stars="4" premium="59.99"/>
<hotel name="Grand Hotel" stars="5" premium="199.99"/>
</hotels>

</stop>

<stop day="2">
<title>Garmisch, Germany.</title>

<description>Major destination of the Bavarian alps. Site of a major World Cup ski race.</description>
<latitude>47.5</latitude>
<longitude>11.0833333</longitude>
<hotels>
<hotel name="Europa Hotel" stars="3" premium="0.0"/>
</hotels>
</stop>

我已经解析了我需要的所有内容,但问题是我需要像这样显示输出,

<title name>
 <stop name>
  <hotels names>
 <stop name>
  <hotels names>

但是输出是这样来的,

<title name>
<stops names>
<hotels names>

只需要一个顺序,我应该使用什么,insertAfter() 还是 after()?

这是我的 jQuery 代码: http://pastebin.com/dmETKi9E

HTML 代码:

 <body>
    <h1 id="header"></h1>
    <h2 id="stop"></h2>
    <p id="hotel"></p>
 </body>

【问题讨论】:

    标签: jquery html xml-parsing


    【解决方案1】:

    更新测试并正常工作问题在于您的 HTML。所有标题都与标题一起进入,所有站点都进入站点,所有酒店都进入酒店,而您应该为每个新项目创建一个新对象。查看wrap() jquery 命令。你要做的是

    function processXml(xml) {
      var header, stop, hotel;
      $(xml).find("tour").each(function() {
        header = $('<h1 class="header" />');
        header.html($(this).attr("title"));
    
        $(this).find("stop").each(function() {
    
          stop = $('<h2 class="stop" />');
          stop.html(($(this).find("title").text()));
    
          $(this).find("hotel").each(function() {
           hotel = $('<p class="hotel" />');
           hotel.html(($(this).attr("name")));
           stop.append(hotel);
          });
    
          header.append(stop);
        });
        $('body').append(header);
      });
    }
    

    不客气:)

    【讨论】:

    • 我确实尝试过这个,但它仍然没有显示我想要的方式。 ://
    • 这给了你什么?我想我没有完全明白你想要得到什么。
    • 这可能会消除您的疑问,对于每个站点,您必须列出站点的名称以及该站点可用的酒店名称列表。
    • 我现在将其标记为作业。不,实际数据没有问题。
    • 如果您只需要标签,我已经更新了上面的代码,为第一个子类别添加一个空格,然后为酒店类别添加两个空格。
    【解决方案2】:

    我认为问题在于你想要的方式不是格式良好的 xml。输出剂量在哪里?为什么需要特殊格式? xml 不应该也包含结束标签吗?

    【讨论】:

    • xml其实没问题,问题是他对html的实现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多