0

だから私は、XMLがAJAXを介して取得され、関数に渡されるこのことをやろうとしています。現在、インターネットのどこかで読んだ小さなチュートリアルを除けば、非同期 JavaScript と XMLについては何も知りません。jQuery.ajax()私が知っているのは、AJAXXMLsuccessを取得し、 のプロパティとしての名前でコールバック関数を提供することだけです。ここで、 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 かどうかを確認します。さて、前に述べたように、xmlDocjQuery 関数を使用して処理することができます。つまり、それは既に jQuery オブジェクトであり、jQuery (またはjQuery.ajax) はそれが有効な XML であることを既に確認していますか? そうでない場合、それが有効な XML であること、または少なくとも XML であることを確認するにはどうすればよいでしょうか?

ここで言及および/または質問するトピック外のことが他にもいくつかあります。

  1. $.fn適切なプラグインを開発していなくても、拡張することは良い考えですか?

  2. ほとんどの jQuery 関数はオーバーロード$('#toTheseElements').doSomething( withTheseArgs )されています。たとえば、 $.doSomething( $('#toTheseElements'), withTheseArgs ). 彼らはどのようにそれをしますか?そして、それは良いことですか?また、やりたいと思ったらどうすればいいですか?私はインターネットを調べて多くの解決策を見つけましたが、それらのほとんどは単なるハックです. 最適な (そしてエレガントな) ソリューションはありますか?

  3. に他の有価証券を追加したい場合はどうすればよいprocessData(args)ですか? たとえば、processData(args)呼び出された要素が特定のタイプの(すべての)要素であるかどうかを確認しますか? 私は知って$.is('elementType')いますが、型の要素の 1 つだけでも true を返しますelementType。できますが、タイプではない要素に遭遇した場合は$.each()できません。returnelementType

  4. AJAX は非同期ですが、xmlDoc関数内の別の関数への引数として使用しても安全success()ですか? 同期関数や非同期関数についてはよくわかりませんが、数日前に別の非同期関数に遭遇し、なぜそれが空の変数を返し続けるのか疑問に思っていました*そしてインターネット上で自分を馬鹿にすることになりました...だから、私は非同期を恐れますか?

トピックから外れた質問は本当にトピックから外れたものなので、無視してもかまいません。私はまったく気にしません。チェリオ!

4

0 に答える 0