这可能是如此微不足道,以至于我羞于问这个......
为什么这不起作用?
<?xml version="1.0" encoding="UTF-8"?>
<filter id="4" max_values="10">
<value id="9">strategy</value>
<value id="11">simulation</value>
<value id="12">shooter</value>
</filter>
这是我请求页面时得到的 xml 响应:
$.post('afilters/getvaluesXml', {filter_id: fid},
function(response){
var fields;
alert(response);
var filter_id = $(response).find('filter').attr('id');
var max_values = parseInt($(response).find('filter').attr('max_values'));
alert('filter_id: '+filter_id+' max_values:'+max_values);
$(response).find('value').each(function(){
var id = $(this).attr('id');
var value = $(this).text();
if(max_values == 1){
fields = fields+'<input type="radio" name="'+filter_id+'" value="'+id+'"/>'+value+'<br/>';
} else {
fields = fields+'<input type="checkbox" name="'+filter_id+'[]" value="'+id+'"/>'+value+'<br/>';
}
});
//alert(fields);
$('#'+filter_id+'_values').text(fields);
});
除了我无法获取 filter_id 和 max_values 属性之外,一切正常。 这是警报框内容:
filter_id:空 max_values:NaN
而且,为什么当我按照 jquery .post() docu 中的描述指定数据类型“xml”时,没有任何回复给我(没有收到任何响应 - 回调永远不会执行)。
最佳答案
我尝试将dataType设置为xml,它的工作就像一个魅力,看看这个片段:
$.post('afilters/getvaluesXml', {filter_id: fid}, function(response){
var filter_id = $('filter', response).attr('id');
var max_values = parseInt($('filter', response).attr('max_values'));
alert('filter_id: '+filter_id+' max_values:'+max_values);
}, 'xml');
关于jquery - 获取根节点属性,jQuery/XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2314774/