2

私はjqueryとajaxを初めて使用するので、専門的な発言がないことを許してください。

XML ファイルを にロードしましたsuccess: function(xml)

次に、次のように呼び出します。

$(xml).find("name").each (function() {
    var name = '<li>name: ' + $(this).find("name").text() + '</li>';
    $('#name').append(name);
});

<li>これは、予想どおり、ページに3つの新しい要素を取得するほどうまく機能します。<name>Network</name>ただし、タグ間のテキストは表示されません。

何が起こるかを確認するためにメソッドを (xml)に置き換えた$(find)ところ、3 つすべての名前が 3 つすべてに返されました<li>(閉じますが、葉巻はありません!)

$(this)が使用している方法はどこか間違っていると思いますが、何が間違っているのか少し混乱しています。

正しい方向への指針はありますか?

編集 -

XML スニペット:

<soap:Envelope>
    <soap:Body>
        <ns2:getAccountsResponse>
            <Accounts>
                <acc??ountId>1</accountId>
                <address/>
                <city/>
                <country/>
                <creationDate>2012-04-11T00:00:00+01:00</creationDate>
                <description/>
                <fax/>
                <name>Network</name>
                <origin>??Support_4</origin>
                <phone/>
                <postalCode/>
                <state/>
                <webSite/>
            </Accounts>
4

1 に答える 1

2

XML 構造を考慮して、次の行を置き換えます。

var name = '<li>name: ' + $(this).find("name").text() + '</li>';

これとともに:

var name = '<li>name: ' + $(this).text() + '</li>';

これは、each()ループ内でthisキーワードがすでに<name />要素を参照しているため、その必要がないためfind()です。

于 2012-05-23T08:08:49.430 に答える