jQuery.ajax()和XML验证

时间:2013-08-05 22:13:06

标签: jquery xml ajax validation

所以我试图通过 AJAX 获取 XML 并将其传递给函数。现在,我对异步JavaScript和XML 一无所知,除了我在互联网上的某个地方阅读的小jQuery.ajax()教程。我所知道的是 AJAX 为我获取了 XML 并为我提供了一个名为success的回调函数作为ajaxSettings的属性,我可以在哪里处理XML数据 - 它是相关的 - 使用jQuery函数

所以,这是一种可能的情况。

// 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?

我还有其他一些偏离主题的事情要提及和/或在这里询问。

  1. 即使我没有开发合适的插件,扩展$.fn也是个好主意吗?

  2. 大多数jQuery函数都被重载,例如$('#toTheseElements').doSomething( withTheseArgs )$.doSomething( $('#toTheseElements'), withTheseArgs )一样有效。他们是怎么做到的?这是一件好事吗?如果我想这样做,我该怎么做呢?我查看了互联网,发现了许多解决方案,但大多数只是黑客攻击。是否有最优(优雅)的解决方案?

  3. 如果我想将其他证券添加到processData(args)怎么办?例如,检查已调用processData(args)的元素是否是某种类型的(所有)元素?我知道$.is('elementType'),但即使只是elementType类型的一个元素,它也会返回true。我可以$.each()但如果遇到不属于return类型的元素,我就无法elementType

  4. AJAX是异步的,使用xmlDoc作为success()函数内另一个函数的参数是否安全?我对同步或异步函数了解不多,但几天前我遇到了另一个异步函数,并一直想知道为什么它一直在返回空变量*并最终在互联网上愚弄自己...所以,我应该害怕异步?

  5. off-topic 问题确实是偏离主题的,因此这意味着您可以选择忽略它们,我根本不介意。 Cheerio!

0 个答案:

没有答案