【问题标题】:getElementsByTagName JquerygetElementsByTagName Jquery
【发布时间】:2013-06-13 21:44:56
【问题描述】:

我似乎无法访问以下 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。

现在一切正常。

【问题讨论】:

  • 数据在哪里/如何定义
  • 你能发个小提琴吗?
  • jsfiddle.net/FG9Nz 好像把所有元素都带回来了?
  • 不明白为什么这被标记为 jQuery 但没关系。如果你有“太多getElementsByTagName”(不管那是什么),那么问题可能过于本地化了。
  • 这不是 jQuery 代码。甚至没有一点 jQuery 的味道。这似乎不惜一切代价避免使用 jQuery。

标签: javascript xml dom


【解决方案1】:

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

我尝试修复它,首先我不编辑 jsfiddle 中包含您的 xml 文件内容的 html 框,并且 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/

【讨论】:

    猜你喜欢
    • 2011-02-20
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多