我使用以下代码搜索本地xml源,我试图...
1。)搜索/过滤播放器xml节点,其中findplayername变量与playername属性或XML中的名称节点匹配(我可以更改xml源节点/属性,但如果有帮助的话,我想要的话)
2.)然后能够写出/访问其他节点的节点值,例如对应于findplayername匹配的id和twid - 如果这有意义的话。
我不确定循环和功能应该如何发挥作用,但是我试过的是什么......有谁可以为我解释这个问题?
function getTwitterID(findplayername){
$.ajax({
type: "GET",
url: "myxmlfile.xml",
dataType: "xml",
success: function(xml) {
$(data.player).each(function (i, item) {
$(xml).find("name").text() == findplayername;
});
}
});
};
我返回的XML如下所示:
<players>
<player playername="Jim Smith">
<id>1</id>
<name>Jim Smith</name>
<twid>abc</twitterid>
</player>
<player playername="Jane Doe">
<id>2</id>
<name>Jane Doe</name>
<twid>xyz</twitterid>
</player>
</players>
编辑 - 这非常感谢@Ohgodwhy:
function getTwitterID(findplayername){
$.ajax({
type: "GET",
url: "myxmlfile.xml"",
dataType: "xml",
success: function(xml) {
$(xml).find('player').each(function(i, item){
if($(this).find('name').text() == findplayername){
console.log($(this).find('twid').text());
}
});
}
});
};
答案 0 :(得分:1)
我不确定它是不是一个糟糕的复制意大利面,或者你是否合法地声明你的变量错了,但它应该是:
$(xml).find('player').each(function(){
$(xml).find('name').text(findplayername);
});
观察上面的内容,你也不能使用jQuery作为getter和setter,而是需要将你的值作为参数传递给函数,以便对它进行评估。除非我对上述内容有误并且打算进行比较:
$(xml).find('player').each(function(){
if($(this).find('name').text() == findplayername)){
//do something
}
});