getElementsByTagName Jquery

时间:2013-06-17 20:12:30

标签: javascript xml dom

我似乎无法访问以下XML子节点:

<quotation>
<length category="3month">
  <newprice>test1</newprice>
  <save><?php echo number_format((($ThreeMonthPrice*12)+35),2)?></save>
  <payments><?php echo number_format($ThreeMonthPrice,2)?></payments>
  <price><?php echo number_format($ThreeMonthPrice,2)?></price>
</length>
<length category="6month">
  <newprice>test1</newprice>
  <save><?php echo number_format((($SixMonthPrice*12)+35),2)?></save>
  <payments><?php echo number_format($SixMonthPrice,2)?></payments>
  <price><?php echo number_format($SixMonthPrice,2)?></price>
</length>
</quotation>

这是我的jQuery代码:

ThreeMonthPrice=data.getElementsByTagName("price")[0].childNodes[0].nodeValue;
SixMonthPrice=data.getElementsByTagName("price")[1].childNodes[0].nodeValue;

有人能找到我错的地方吗?

我在控制台中收到以下错误:

无法读取未定义

的属性'childNodes'

谢谢,


管理来修复此问题,我必须使用许多getElementsByTagName。

现在一切正常。

1 个答案:

答案 0 :(得分:0)

您的问题是您使用XML文件内容作为html并在jsfiddle的结果框中显示您的xml内容而不是您的javascript代码的结果,并且在控制台中您可以看到错误数据未定义

我尝试修复它,在第一个我不编辑jsfiddle的html框中有你的xml文件内容和jsfiddle在结果框中写入body标签中的所有代码然后如果我得到了body的内容我得到所有的xml内容为字符串,然后我用一个小的javascript函数将字符串内容转换为xml内容然后我使用您的查询来查找价格标签,然后将其写入正文。

function StringtoXML(text){
                if (window.ActiveXObject){
                  var doc=new ActiveXObject('Microsoft.XMLDOM');
                  doc.async='false';
                  doc.loadXML(text);
                } else {
                  var parser=new DOMParser();
                  var doc=parser.parseFromString(text,'text/xml');
                }
                return doc;
            }

    //example of application:
    var doc = StringtoXML($(document.body).html());

ThreeMonthPrice=doc.getElementsByTagName("price")[0].childNodes[0].nodeValue;

$(document.body).html("&pound;"+ThreeMonthPrice);

在此处查看http://jsfiddle.net/FG9Nz/2/