因此,我正在尝试通过AJAX获取XML并将其传递给函数。现在,除了我在互联网上某处读到的一个小教程外,我对异步 JavaScript 和 XML一无所知。我所知道的是,AJAX为我获取XML,并通过名称为我提供了一个回调函数作为 的属性,我可以在其中使用 jQuery 函数处理 XML 数据 - 这是相关的。jQuery.ajax()
success
ajaxSettings
所以,这是一个可能的场景。
// 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')
但即使只是该elementType
类型的元素之一,它也会返回 true。我可以$.each()
,但return
如果我遇到一个不是类型的元素,我就不能elementType
。AJAX 是异步的,在
xmlDoc
函数内用作另一个函数的参数是否安全success()
?我对同步或异步函数了解不多,但几天前我遇到了另一个异步函数,一直想知道为什么它一直返回空变量*并最终在互联网上自欺欺人......那么,我应该害怕异步?
离题的问题是真正离题的,所以这意味着你可以选择忽略它们,我一点也不介意。干杯!