getElementsByTagName'未定义'在Firefox和Chrome中
getElementsByTagName 'undefined' in Firefox and Chrome?
我的getElementsByTagName有问题。我正在尝试使用ajax从服务器接收的xml文件中提取信息。在IE中,它运行得很好,但当我尝试在Chrome或FireFox上运行它时,我会得到一个"未定义"。
Javascript:
function parseMessage()
{
doc = request.responseXML;
sum = "";
for (var i=0; i< doc.getElementsByTagName('coupon').length; i=i+1)
{
var lat2 = doc.documentElement.getElementsByTagName('latitude').item(i).text;
var longi2 = doc.documentElement.getElementsByTagName('longitude').item(i).text;
var latlng = new google.maps.LatLng( lat2 , longi2 );
var product = doc.documentElement.getElementsByTagName('productname').item(i).text;
// marker[i] = createMarker(map2, product, latlng, description);
sum = sum + description+ " "+ product + lat2 + longi2;
}
document.write(sum);
}
XML:
<?xml version="1.0" encoding="UTF-8"?>
-<coupons>
-<coupon id="1">
<productname>Bigmac</productname>
<companyname>Macdonalds</companyname>
<latitude>32.015954</latitude>
<longitude>34.755228</longitude>
</coupon>
-<coupon id="2">
<productname>Crocs</productname>
<companyname>Crocs</companyname>
<latitude>32.079375</latitude>
<longitude>34.769325</longitude>
</coupon>
-<coupon id="3">
<productname>Nike Shoks</productname>
<companyname>NIKE</companyname>
<latitude>32.048825</latitude>
<longitude>34.785461</longitude>
</coupon>
-<coupon id="4">
.....
第一个问题是getElementsByTagName()
返回元素列表;不能作为一个组操作,所以你必须选择一个特定的节点来工作:
getElementsByTagName('latitude')[0]; // for the first element.
第二个问题是:
getElementsByTagName('latitude')[0].item(i);
应该用于访问特定元素的属性或属性,而item(i)
既不是,也不是
如果您试图访问元素的一个子元素(在您发布的代码中,latitude
元素没有任何子元素),您可以使用:
getElementsByTagName('latitude')[0].childNodes[i];
并且text()
不会以纯JavaScript返回或执行任何操作。如果您使用的是jQuery text()
方法,那么它只适用于jQuery对象,如果您试图访问当前节点的文本内容,那么:
getElementsByTagName('latitude')[0].textContent; // for Firefox, Chrome...
或者:
getElementsByTagName('latitude')[0].innerText; // for IE
相关文章:
- IE/Chrome中未定义的函数,但Firefox中没有
- Chrome扩展,Chrome.tabs.query的结果未定义
- chrome.storage.sync未定义错误
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- Javascript'元素'在ie中未定义,但在chrome和firefox中运行良好
- 尝试从我的 chrome 扩展程序访问 gmail 中的 iframe 时出现未定义的错误,但不是从开发者控制台访问
- getElementsByTagName'未定义'在Firefox和Chrome中
- Chrome报告e.key=Del键未定义
- Chrome返回未定义的cancelFullScreen和网络工具包cancelFullScreen
- 拖放文件时,dataTransfer.items属性在Firefox和IE中未定义,但在Chrome中未定义
- InnerText在内容脚本Chrome扩展中返回未定义的内容
- Chrome 显示未定义密钥代码
- 检查未定义的变量在 chrome 中不起作用
- 来自 chrome 扩展程序中内容脚本的未定义响应
- Chrome - 即使先检查也无法读取未定义的属性“状态”
- “无法获取未定义或空引用的属性'getData'”在IE中,但不能在Chrome中获取
- jQuery - IE7 - 变量未定义(适用于Chrome,Safari,Firefox)
- 如何让 Chrome 调试器在处理未定义的变量时中断或出错
- Chrome扩展“$未定义”错误
- 未捕获的类型错误:无法读取IE和Chrome Firefox中未定义的属性“文档”很好