1

訪問者の場所に基づいて会社を表示するページがあります。訪問者の位置を特定するためにプラグインを使用しました。企業リストは、次の設定で XML ファイルに保存されます。

<?xml version="1.0" encoding="utf-8"?>
<Events>
  <EventItem>
    <Country>Abu Dhabi</Country>
    <Company>Trizac Abu Dhabi</Company>
    <Address>P.O. Box 4434 Abu Dhabi U.A.E.</Address>
    <Email Link="ahmad.nabulsi@trizac.ae"><![CDATA[ahmad.nabulsi@trizac.ae]]></Email>
    <Web Link=""><![CDATA[]]></Web>
    <Phone Link="tel:971 2 633 0552"><![CDATA[Phone:971 2 633 0552]]></Phone>
    <Fax Link="tel:971 2 633 0557"><![CDATA[Fax:971 2 633 0557]]></Fax>
  </EventItem>
</Events>

次のコードを使用してデータを表示しました(最初にアラートに配置しました)

$.get(strXML, function(d){
                alert("Start search in : " + strXML + " for " + location.countryName); 
                $(d).find("Country:contains('Hong Kong')").each(function(){
                    var $lbp = $(this);
                    alert ($lbp.find("Company").text() + " hello " + $lbp.find("Address").text())
                }); //end of $(d).find
            }); //end of $.get

最初に location.countryName をハードコードしました (この場合、"Hong Kong" は、私のロケーターが国名をすべて大文字にするためです。一方、XML のデータはキャメル キャップです (変更方法をまだ見つけようとしています)。私の XML では、HK に 1 つの会社があり、コードはそれを認識していますが、 および タグ内のテキストを表示しようとすると、何も表示されません。

そのため、少なくともアラート コードが機能しているかどうかを確認するために「こんにちは」を配置しました。それはありますが、会社と住所については何も表示されていません:(

「日本」も試してみました.4つの会社があり、プロセス中に4つのアラートを受け取りましたが、XMLタグからのデータを表示できないようです:(助けていただければ幸いです:)このjQueryは初めてです/XML コンボなので、ご容赦ください :(

4

1 に答える 1

1

問題は、タグfind()を取得するために を実行したためです<Country />。その後、その中の Country をもう一度探していますが、そこにはありません。代わりに、レベルを上げる必要があります。これを試して:

$.get(strXML, function(d){
    alert("Start search in : " + strXML + " for " + location.countryName); 
    $(d).find("Country:contains('Hong Kong')").each(function(){
        var $lbp = $(this).closest('EventItem'); // Note the parent is selected here
        alert ($lbp.find("Company").text() + " hello " + $lbp.find("Address").text())
    });
});
于 2013-09-16T07:58:16.993 に答える