我正在尝试从下面的xml中提取StateLongName和StateShortName值.
<NewDataSet> <Table> <StateLongName>Alabama</StateLongName> <StateShortName>AL</StateShortName> </Table> <Table> <StateLongName>Alaska</StateLongName> <StateShortName>AK</StateShortName> </Table> ...elments removed for brevity </NewDataSet>
这是我尝试过的.
将xml从上面加载到Javascript变量名称xml中.
试试#1
$(xml).find("TABLE").each(function() { var stateName = $(this).find("StateLongName").innerText; var stateCode = $(this).find("StateShortName").innerText; });
尝试#1找不到任何东西,永远不会进入加载stateName和stateCode变量.
试试#2
$(xml).find("StateLongName").each(function() { var stateName = $(this).find("StateLongName").innerText; var stateCode = $(this).find("StateShortName").innerText; });
尝试#2找到匹配项,但stateName和stateCode未定义.
试试#3
$(xml).find("StateLongName").each(function() { var stateName = $($(xml).find('StateLongName').parent()[0].innerHTML)[1].data; var stateCode = $($(xml).find('StateLongName').parent()[0].innerHTML)[5].data; });
谢谢你的时间!
解决方法
它区分大小写,使用“Table”如下:
$(xml).find("Table").each(function() { var stateName = $(this).find("StateLongName").text(); var stateCode = $(this).find("StateShortName").text(); });
更新:对不起这个有点莫名其妙,不要使用< table>,它将它视为html创建< tbody>事情从那里开始变得陌生:)如果你把它变成了其他任何东西,它就会起作用,这是一个例子,它变成了< tabl>:http://jsfiddle.net/Yvetc/
<html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> var xml="<NewDataSet><Tabl><stateLongName>Alabama</stateLongName><stateShortName>AL</StateShortName></Tabl><Tabl><StateLongName>Alaska</StateLongName><StateShortName>AK</StateShortName></Tabl></NewDataSet>"; $(xml).find("Tabl").each(function() { var stateName = $(this).find("StateLongName").text(); var stateCode = $(this).find("StateShortName").text(); alert("State: " + stateName + " Code: " + stateCode); }); </script> </head> <body> </body> </html>
原文地址:https://www.jb51.cc/jquery/181556.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。