1

現在、セレクターを使用して WMS Capabilities XML ファイルを解析していますが、これは素晴らしくクリーンなコード ソリューションです。

しかし、私は IE8 の問題に出くわしました - (Chrome、Safari、Firefox などはすべて完全に動作します)

$.get(capabilitiesUrl, function (data) {
  $("WMT_MS_Capabilities Capability Layer Layer Name",  $(data)).not("Style Name").each(function (i) {
    layerNames[i] = $(this).text();
  });
});

layerNamesこれにより、適切なブラウザーで配列が正常に読み込まれます。

IE9+dataのタイプは[Object, Document]

ただし、IE8 では、 のタイプは、セレクター クエリで解析できないdataタイプです。IXMLDOMDocument2

またIXMLDOMDocument2、読み取り専用であるため、シズルは次の場合に例外をスローします。

outerCache = elem[ expando ] || (elem[ expando ] = {});

読み取り専用でelem[ expando ] = {}あるため失敗します。エラーありIXMLDOMDocument2Object doesn't support this property or method


セレクターを使用して配列にデータを入力する方法はありlayerNamesますか、それとも不可能を追い求めていますか?

4

1 に答える 1

1

これを考え出した。

.find()メソッドの代わりにを使用するfind inと、IE8 で適切に解析されます。

それから私はまだ.not()例外を引き起こすという問題を抱えていましたsizzle.

jQueryAPIを使用する代わりに、セレクターを使用することでこれを解決しまし.not():not()


解決策は次のとおりです。

$(data).find("WMT_MS_Capabilities Capability Layer Layer Name:not(Style Name)").each(function (i) {
  layerNames[i] = $(this).text();
});
于 2013-03-11T03:42:16.440 に答える