0

我使用以下代码搜索本地 xml 源并尝试...

1.)搜索/过滤播放器xml节点,其中findplayername变量与播放器名称属性或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());
            }
        });
    }
});

};

4

1 回答 1

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
    }
});
于 2013-11-11T01:12:47.583 回答