2011-07-24 7 views
1

私はここで似たような状況の例を見たことがありますが、私の具体的な問題で何も見つかりませんでした&私はそれを得ることができません。ここでは、コードされていますjQueryがXML文書を解析してHTMLを出力するのに助けが必要

$(document).ready(function() 
{ 
    $.ajax({ 
     type: "GET", 
     url: "linwood.xml", 
     dataType: "xml", 
     success: parseXml 
    }); 
    function parseXml(xml){ 
     $(xml).find("loaction1").each(function(){ 
      if($(this).find("Available").text() == 'Yes'){ 
       $("#location1").append("<li><p><u><h4>Unit " + $(this).find("Unit").text() + " [" + $(this).find("Price").text() + "]:</h4></u>" + $(this).find("Description").text() + "<div class='small'>"); 
       $(this).find("Href").each(function(){ 
        $("#location1").append("<a href='" + $(this).text() + "' rel='lightbox' ><img width='45px' height='35px' src='" + $(this).text() + "' /></a>"); 
       }); 
       $("#location1").append("</div></p></li>"); 
      } 
     }); 
    } 
}); 

は基本的に私が何をしようとしていますどのようなIDが「場所1」がULのための農産物リスト項目(LI)です。これまでのところ、最初の行が正しく表示されています。しかし、私は、.appendが開いているタグをすべて閉じることを学びました。これは問題ではありませんが、:

xmlが各 'a'タグに対して与えるhrefが必要です。私はそれらを配列に追加し、その配列を'append 'セクションの一部に含めることを考えていますが、それぞれのliは異なる数のリンクを持っています。最終結果HTMLは次のようになります。

<ul id="location1"> 
<li> 
    <p> 
     <u><h4>Unit 1 [$600]</h4><u> 
     This unit is available for purchase 
     <div class='small'> 
      <a href='#' rel='lightbox'><img src='#' /></a> 
      <a href='#' rel='lightbox'><img src='#' /></a> 
      <a href='#' rel='lightbox'><img src='#' /></a> 
     </div> 
    </> 
</li> 
<li> 
    <p> 
     <u><h4>Unit 2 [$400]</h4><u> 
     This unit is available for purchase 
     <div class='small'> 
      <a href='#' rel='lightbox'><img src='#' /></a> 
     </div> 
    </> 
</li> 
</ul> 

誰かが私を助けることができると思いますか?前もって感謝します!

答えて

0

だけであることを主要な部分を変更します。

var container = $("<li><p><u><h4>Unit " + $(this).find("Unit").text() + " [" + $(this).find("Price").text() + "]:</h4></u>" + $(this).find("Description").text() + "<div class='small'>") 
$(this).find("Href").each(function(){ 
    container.append("<a href='" + $(this).text() + "' rel='lightbox' ><img width='45px' height='35px' src='" + $(this).text() + "' /></a>"); 
}); 
$("#location1").append(container); 
+0

ありがとうございました!これは完全に機能しました。今私はそれがそのような明白なように配置されて参照してください、それはなぜ新鮮な目のペアが常に最高です! – zairon87

0

あなたには2つの方法があります。あなたは、単一の変数に必要なすべてのHTMLを記述し、その後、#1場所1フィールドにその変数を追加、またはあなたは多分行うことができ、次のいずれか

$("#location1").html($("#location1").html()+"HTML here"); 

明らかに、最初のオプションは、おそらく(Iドン最適なソリューションですhtml()も自動的にタグを閉じる場合、私の頭の上から離れていることを知っている。

私が(コードを通じて)意味することのより完全な説明が必要な場合、私はそれを供給することができます。ちょうど私の応答にコメントしてください。

+0

あなたとバリアントは、同じ答えを与え、それはどうもありがとうございましたので働きました。これは今日よりずっと良いものになった。 – zairon87

+0

喜んで私は助けることができます:-)。私は最初に投稿した、ハハ。 – Chris

関連する問題