javascript学习笔记——chrome等提示找不到“getElementsByTagName”的一种解决方法
最近学习是写了一个小网页,前台有个下拉框是通过后天的xml配置的,在写好代码后使用发现在IE9以及之前的IE浏览器都可以正常获取,但是IE10,chrome和firefox都会在获取一个标签时报getElementsByTagName方法不存在的错误。百度了很久未果,起初以为的确是这些浏览器不支持这个方法了,今天用IE10自带的调试工具对比了下载IE9和IE10下的变量,发现大不相同啊。
var allitems = xmlHttp.responseXML.getElementsByTagName("menu")[0].childNodes; // 取得全部的menu下的节点
var select = document.getElementById("menuid") ;
select.length = 1 ; // 每次选择一个
select.options[0].selected = true ; // 第一个为选中的状态
for(var i=0;i<=allitems.length;i++){
var option = document.createElement("option") ;
var food = allitems[i].getElementsByTagName("food")[0].firstChild.nodeValue ;
这是起初的代码,IE9执行正常,其他浏览器报错。
我的xml格式如下,有17个item标签:
IE9下allterms变量监视如下:
虽然看不到item但是可以看到长度为17,与xml的item数目一致。
IE10下allitems变量监视如下:
看到这里有34个下标可以取,正好是我item节点数目的两倍,点开0,1分别查看发现0里存的是格式信息,换行什么的,1里存的才是我xml文件的第一个item标签下的信息,类型也不同。所以这里的奇数项才对应的是之前的每一项,找到了原因把for循环改成
for(var i=1;i<allitems.length;i+=2)
就行了。
对于学习js的一点感悟,以前是写c++的,每一个函数都有标准的说明该怎么用,在学js时没有标准的api文档,大部分都是边用边百度的,对于api还是调试下看看才最清楚。
javascript学习笔记——chrome等提示找不到“getElementsByTagName”的一种解决方法的更多相关文章
- Dynamic CRM 2013学习笔记(二十)字段改变事件的二种实现方法
CRM里有二种方式实现字段change事件,一种是在form里,一种完全通过js来实现.本文介绍下二者的用途及区别. 1. Form里用法 这种方式估计其实也是添加一个js的function. 这种方 ...
- 使用ASIHTTPRequest 编译提示找不到"libxml/HTMLparser.h"的解决方法
使用ASIHTTPRequest xcode编译提示找不到"libxml/HTMLparser.h",解决方法如下: 1>.在xcode中左边选中项目的root节点,在中间编 ...
- 【Jenkins】通过ANT构建JMeter任务时提示找不到jtl文件时的解决方法
- Android学习笔记之-----讯飞语音识别实例化RecognizerDialog参数出现错误的解决方法
本人也是个小菜鸟,在做语音识别时也遇到了这个问题,空指针一直报错,app程序停止运行. 在网上搜了半天在这个帖子里找到了解决方法:http://bbs.xfyun.cn/forum.php?mo .. ...
- Java程序猿的JavaScript学习笔记(1——理念)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- JavaScript:学习笔记(4)——This关键字
JavaScript:学习笔记(4)——This关键字 以前这篇帖子是关于闭包的,但是我想弄明白的其实是This关键字.JavaScript的this和Java等面向对象语言中的this大不一样,bi ...
- Javascript学习笔记二——操作DOM
Javascript学习笔记 DOM操作: 一.GetElementById() ID在HTML是唯一的,getElementById()可以定位唯一的一个DOM节点 二.querySelector( ...
- Javascript学习笔记——操作浏览器对象
Javascript学习笔记 目前尝试利用javascript去对于一个浏览器对象完成一系列的访问及修改, 浏览器是网页显示.运行的平台,常用的浏览器有IE.火狐(Firefox).谷歌(Chrome ...
随机推荐
- Dijkstra优先队列优化
Dijkstra算法的核心思想就是两步排序,一个是对于一个点而言,他的最小边要经过所有其他点最小边的测试才能确认,也就是说要在这其中找一个最大的边出来:第二个是对于每次循环而言的,每次的更新d数组都是 ...
- socket中select的使用源码
下面的代码来自IBM学习网站,是学习socket通信和select使用的一个很好的源码. server.c 服务器端 #include <stdio.h> #include <st ...
- RSA实例破解
Description: Decode the message. You intercept the following message, which you know has been encode ...
- 一条sql
包含全部:SELECT u.id,u.user_name,usa.fixed_amount,d.uloadtype,d.min_loan_money FROM fanwe_user_autobid u ...
- 自定义listView添加滑动删除功能
今天研究了一下android里面的手势,结合昨天学习的自定义View,做了一个自定义的listview,继承自listView,添加了条目的滑动手势操作,滑动后出现一个删除按钮,点击删除按钮,触发一个 ...
- mevan引入容联云通讯jar
首先从官网下载jar 然后拷贝到lib目录下 最后在pom.xml中这样写 <dependency> <groupId>cn.com</groupId> <a ...
- (转)Facade模式
Facade模式要求一个子系统的外部与其内部的通信必须通过一个统一的Facade对象进行.Facade模式提供一个高层次的接口,使得子系统更易于使用. 就如同医院的接待员一样,Facade模式的Fac ...
- displaytag 简单使用流程
1. 首先导入包:displaytag-1.2.jar,commons-lang.jar和standard.jar;commons-beanutils.jar;这四个jar包 2. 然后在jsp页面做 ...
- oracle 优化 —— 分区表
一.分区表简介 分区表类型:[范围分区].[列表分区] [hash分区] [这些分区的组合分区] 范围分区:以某一个范围进行分区.eg:时间段划分. 列表分区:以某一些几个值进行分区.eg:地区 ...
- cocos2dx 帧动画(iOS)
植物大战僵尸的植物摇摆效果 //帧动画 Animation *animation = Animation::create(); Sprite *sprite = Sprite::create(&quo ...