だから私は、XMLがAJAXを介して取得され、関数に渡されるこのことをやろうとしています。現在、インターネットのどこかで読んだ小さなチュートリアルを除けば、非同期 JavaScript と XMLについては何も知りません。jQuery.ajax()
私が知っているのは、AJAXがXMLsuccess
を取得し、 のプロパティとしての名前でコールバック関数を提供することだけです。ここで、 jQuery 関数を使用しajaxSettings
て XML データを処理できます。これは関連しています。
したがって、ここに考えられるシナリオがあります。
// Inside $.ready()...
$.ajax({
type: 'GET',
dataType: 'xml',
url: 'res/xml/data.xml',
success: function(xmlDoc) {
$('#elements').processData(xmlDoc); // In scope, of course...
}
});
さて、これが私が内部で呼び出した関数ですsuccess(xmlDoc)
$.fn.processData = function(args) {
// TODO: ________
}
TODO: args が有効な XML かどうかを確認します。さて、前に述べたように、xmlDoc
jQuery 関数を使用して処理することができます。つまり、それは既に jQuery オブジェクトであり、jQuery (またはjQuery.ajax
) はそれが有効な XML であることを既に確認していますか? そうでない場合、それが有効な XML であること、または少なくとも XML であることを確認するにはどうすればよいでしょうか?
ここで言及および/または質問するトピック外のことが他にもいくつかあります。
$.fn
適切なプラグインを開発していなくても、拡張することは良い考えですか?ほとんどの jQuery 関数はオーバーロード
$('#toTheseElements').doSomething( withTheseArgs )
されています。たとえば、$.doSomething( $('#toTheseElements'), withTheseArgs )
. 彼らはどのようにそれをしますか?そして、それは良いことですか?また、やりたいと思ったらどうすればいいですか?私はインターネットを調べて多くの解決策を見つけましたが、それらのほとんどは単なるハックです. 最適な (そしてエレガントな) ソリューションはありますか?に他の有価証券を追加したい場合はどうすればよい
processData(args)
ですか? たとえば、processData(args)
呼び出された要素が特定のタイプの(すべての)要素であるかどうかを確認しますか? 私は知って$.is('elementType')
いますが、型の要素の 1 つだけでも true を返しますelementType
。できますが、タイプではない要素に遭遇した場合は$.each()
できません。return
elementType
AJAX は非同期ですが、
xmlDoc
関数内の別の関数への引数として使用しても安全success()
ですか? 同期関数や非同期関数についてはよくわかりませんが、数日前に別の非同期関数に遭遇し、なぜそれが空の変数を返し続けるのか疑問に思っていました*そしてインターネット上で自分を馬鹿にすることになりました...だから、私は非同期を恐れますか?
トピックから外れた質問は本当にトピックから外れたものなので、無視してもかまいません。私はまったく気にしません。チェリオ!