0

因此,我正在尝试通过AJAX获取XML并将其传递给函数。现在,除了我在互联网上某处读到的一个小教程外,我对异步 JavaScript 和 XML一无所知。我所知道的是,AJAX为我获取XML,并通过名称为我提供了一个回调函数作为 的属性,我可以在其中使用 jQuery 函数处理 XML 数据 - 这是相关的。jQuery.ajax()successajaxSettings

所以,这是一个可能的场景。

// 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()?我对同步或异步函数了解不多,但几天前我遇到了另一个异步函数,一直想知道为什么它一直返回空变量*并最终在互联网上自欺欺人......那么,我应该害怕异步?

离题的问题是真正离题的,所以这意味着你可以选择忽略它们,我一点也不介意。干杯!

4

0 回答 0