对,这可能有点难以解释。嵌套.each()的jQuery AJAX成功函数 - 数据未定义
我有一个jQuery AJAX请求是阅读XML文件类似下面的布局:
<root>
<nodes>
<node type="typeOne" name="nodeNameOne" />
<node type="typeOne" name="nodeNameTwo" />
<node type="typeTwo" name="nodeNameThree" />
<node type="typeThree" name="nodeNameFour" />
<node type="typeFour" name="nodeNameFive" />
</nodes>
<otherNodes>
<otherNode name="nodeNameOne">Some value</otherNode>
<otherNode name="nodeNameTwo">Some value</otherNode>
</otherNodes>
</root>
这不是我能控制的; XML文件由第三方工具生成。
我想要做的是读取<node>
s'name属性的值,然后用它从对应的<otherNode>
中提取值(如果存在)。
这是我在成功的回调函数已经有了:
function ParseFile(data, status, request){
var types = ['typeOne', 'typeTwo']; //I don't care about all the <node>s
alert(typeof data); //displays "object"
types.each(function(entry, index){
alert(typeof data); //displays "object"
var typeNodes = jQuery(data).find('node[type="'+entry+'"]');
typeNodes.each(function(){
alert(typeof data); //displays "undefined"
var name = jQuery(this).attr('name');
/* The data object is undefined once you get inside this loop,
so the following doesn't work. */
var otherNode = jQuery(data).find('otherNode[name="'+name+'"]').text();
});
});
}
的问题是,我似乎无法从第二.else()
循环中访问数据的变量。即使我在第一个中声明了一个变量,var newData = data;
,newData也是未定义的。
它应该是jQuery的工作来克隆传入的选择器而不会损坏它的状态? – Raynos 2011-02-13 01:21:52