1

以下は Chrome と Firefox では正常に動作しますが、IE では動作しません。IEでデータを取得しています(コンソールで確認できます)-しかし、どちらもループしていません.each

function searchServing(which,choice){
var url = "search.asp?" + which + "=" + choice;

$.get(url, function(data){  
    console.log("data" + data);
    $.each($(data).find("company"),function(index, el) {
        loc = $(this).find('Location').text();
        console.log("loc: "+ loc);
    });
})//$.get(url, function(data){
.error(function() {

})//.error(function() {
.success(function(data) { 
        $.each($('company',data),function(index, el) {
            loc = $(this).find('Location').text();
            console.log("location: "+ loc);
        }
    }
}

XML の形式は次のとおりです。

 <company>
    <sql><%=sSQL%></sql>
    <uid><%=uid%></uid>
    <companyName><%=company%></companyName>
    <location><%=location%></location>
    <phone1><%=phone1%></phone1>
    <phone2><%=phone2%></phone2>
    <phone3><%=tollfree%></phone3>
    <serving><%=serving%></serving>
</company>
4

2 に答える 2

3

まず、IE は常に console.log を好むとは限らないため、削除してください。

次に、タグ名が小文字の場合は、小文字を使用して検索します。

第三に、varキーワードを使用し、変数をループ内でグローバルとして宣言しないでください。

最後になりましたが、XML は次のように で解析する必要があります$.parseXML

function searchServing(which, choice) {
    var url = "search.asp?" + which + "=" + choice,
        loc = []; //use array if iterating several values
    $.get(url, function(xml) {
        var xmlDoc = $.parseXML(xml),
            $xml = $(xmlDoc);
        $.each($xml.find("company"), function(index, el) {
            loc.push($(el).find('location').text());
        });
    });
}​
于 2012-12-31T19:44:28.890 に答える
2

のせいかもしれませんconsole.log()

As IE 8and under にはデフォルトでコンソールオブジェクトがありません

開発者ツールを開いて機能させるか、新しいコンソール オブジェクトを作成する必要があります。

于 2012-12-31T19:38:46.847 に答える