未捕获的类型错误:无法调用未定义的方法“hasChildNodes”

2023-12-01

我正在尝试使用 jquery 中的 ajax 请求读取 XML。下面是代码,它在 IE 中工作正常,但是当我在 Chrome 上运行它时,我遇到了这个错误

未捕获的类型错误:无法调用未定义的方法“hasChildNodes”

$.ajax({

    type: "GET",
    url: "tree1.xml",
    dataType:"xml",
    success: function(xml){
        root=xml.documentElement;
        childs=root.childNodes;
        for(var i=0;i<childs.length;i++){
            z=childs[i].childNodes;
            adChilds(z,childs,oNode);


            function adChilds(a,b,c){
                if(a[i].hasChildNodes()){
                    adNode(b[i].nodeName,c);
                    var oNode_ch=oNode1;
                    for(var j=0;j<a.length;j++){
                        child1=a[j].childNodes;
                        adNode(child1[0].nodeValue,oNode_ch);
                    }
                }
                else{adNode(a[0].nodeValue,oNode);}
            }
        }

错误指向这一行。

if(a[i].hasChildNodes()){

谁能建议我哪里出错了。

提前致谢!


你正在这样做:

z=childs[i].childNodes;

然后,在第一行adChilds(z,childs,oNode);,你正在这样做:

if(a[i].hasChildNodes()){

But, i不是子项的索引a。它是 a 的孩子的父母的索引。因此,如果父母a没有相同数量的孩子a有孩子,你就会超出索引。

我不知道你到底想在 adChilds() 中完成什么,所以我不确定建议什么修复,但我假设你如果想处理 adChilds() 的孩子a,你应该得到孩子的数量a并确保您只访问实际存在的号码


一些编码建议:

  1. 我强烈建议您使用真实的变量名称。名字像a, b, c and z因为中间变量是神秘的,使您的代码难以阅读。

  2. 所有局部变量前面应带有var在第一次定义时(或在函数顶部定义),否则它们将成为全局变量,这会带来麻烦,尤其是对于异步回调函数。

  3. 当您在第一次检查代码时发现一些不明显的错误时,请在您最喜欢的调试器中设置一个断点,单步执行代码并检查变量的状态,以准确了解出现错误的原因。如果您不知道如何使用调试器,请学习。它们内置于大多数浏览器中,非常简单,而且对于高效调试来说绝对必要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未捕获的类型错误:无法调用未定义的方法“hasChildNodes” 的相关文章

  • Android键盘点击搜索输入时出现和消失

    我在用谷歌地图 Js API当我搜索一个地方时 我的输入搜索栏工作正常 当我通过 iPhone 设备使用它时 它也工作得很好 但是当我通过Android 设备然后键盘立即出现和消失 我已经找到了一些关于当我按下搜索栏时 android 键盘
  • 如何验证单选按钮?

    我的 Rails 应用程序中有一个单选按钮 我想编写一个 java 脚本代码 在未选择任何选项时验证这一点 在你的 votes 类中做类似的事情 class Myvotes lt ActiveRecord Base validates vo
  • React:未捕获的引用错误:未定义需求

    我正在阅读 React 教程 http facebook github io react docs animation html http facebook github io react docs animation html 并且我无法
  • .then(functionReference) 和 .then(function(value){return functionReference(value)}) 之间有区别吗?

    给定一个用于处理的命名函数Promise value function handlePromise data do stuff with data return data a 传递命名函数handlePromise作为参考 then pro
  • 如何从矩形点计算旋转角度?

    我有4分1 2 3 4闭合一个矩形 这些点按以下方式排列在数组中 x1 y1 x2 y2 x3 y3 x4 y4 我遇到的问题是矩形可以旋转一定角度 如何计算原始点 灰色轮廓 和角度 我试图在 javascript css3 transfo
  • React-Router v5 History.push 不触发组件

    很抱歉朋友们又问这个问题了 我找到了解决这个问题的几个方法 但他们让我很困惑 我只是想问一个优雅的方法来做到这一点 正如你通过标题所理解的 我有一个关于反应路由的问题 让我解释 我有一个按钮 其名称是Login 单击按钮后 我执行了一些逻辑
  • ES6 Promises/在满足多个 Promise 后调用函数(不能使用 Promises.all)[重复]

    这个问题在这里已经有答案了 我正在编写 Javascript 它需要这些事件按以下顺序发生 同时触发多个 API 调用 所有调用完成且响应返回后 执行一行代码 听起来很简单 但棘手的部分是我不能使用 Promises all 因为我仍然希望
  • Immutable.js 推入嵌套对象中的数组

    假设有一个对象 const object foo bar 1 2 3 我需要推动4 to object foo bar array 现在我正在这样做 const initialState Immutable fromJS object co
  • 用于验证网络路径的正则表达式 PHP、jQuery、JavaScript、Ruby

    尝试找出用于验证网络路径的正则表达式 即 comp xyz or comp or comp x y z storage或者所有部分都更长的东西 但希望能够传达其要点 我目前拥有的是一个简单的输入字段 用户可以通过它传递信息 事情是我不希望他
  • 可以通过 url 发送 JSON 吗?

    我有一个 ruby 哈希 其中键是 url 值是整数 我将哈希值转换为 JSON 我想知道是否能够通过 AJAX 请求在 url 内发送 JSON 然后从 params 哈希值中提取该 JSON 另外 我将把 JSON 化的 ruby 哈希
  • Ajax调用完成后执行函数

    我是 Ajax 新手 我尝试在使用 for 循环时使用 Ajax Ajax 调用之后 我正在运行一个使用 Ajax 调用中创建的变量的函数 该函数只执行两次 我认为 Ajax 调用可能没有足够的时间在循环开始之前进行调用 有没有办法在运行
  • 添加元数据到快速路线

    有什么方法可以将元数据添加到 Express 的路线中吗 例如 app get some route function req res some meta data 我正在寻找一种针对我的节点应用程序的 AOP 方法 因此我想通过身份验证和
  • 如何在没有查询参数的情况下重新加载页面?

    假设我想重新加载www domain com abc num 4 但我想重新加载www domain com abcONLY 问号后没有所有内容 window location window location href split 0
  • asp.net mvc jquery 下拉验证

    我如何使用不显眼的 javascript 验证下拉列表 作为所需验证器的验证文本框 但它不适用于下拉列表 需要更改不显眼的 js 文件吗 或者还有其他选项来验证下拉列表吗 我想在我的 javascript 中检查 form validate
  • jQuery.ajax() 记录 HTTP 请求

    我有一个发送 HTTP POST 请求的函数 我想记录它以进行调试 这是函数 function serverRequest URL DATA callback ajax url URL type POST dataType text con
  • jQuery Mobile 数据过滤器,以防没有结果

    我目前正在探索 jQuery Mobile 以开发带有订单跟踪信息的移动版仪表板 计划是使用一个包含所有订单的简单无序列表 人们可以单击他们想了解更多信息的链接 由于此列表可能会变得相当大 因此拥有过滤功能非常好 使用 jQuery Mob
  • 如何使用 Java 1.4 和 SAX 将任意数据编码为 XML?

    我们使用 SAX 来解析 XML 因为它不需要将整个 XML 文档读入内存来解析单个值 我读过很多文章 坚持认为 SAX 只能用于解析 解码 XML 而不能创建它 这是真的 不 这不是真的 您可以使用类似于以下内容的方式将 XML 编码为
  • 插入四个空格而不是制表符

    我试图在按下 Tab 键时插入四个空格 我正在使用以下代码 请参阅spaces t 但是当我将其切换到spaces 当我按 Tab 时只插入一个空格 我还尝试了 function textarea keydown function e va
  • 为什么转换 new.Date() .toISOString() 会改变时间?

    我正在以两种不同的格式在数据库中插入日期 这是作为日期时间插入 var mydate mydate new Date document getElementById clockinhour value mydate toISOString
  • 使用 Google Visualization,为什么 DataView 内容显示在 ChartRangeFilter 中,而不显示在其关联的 LineChart 中?

    下面的代码应该从 CSV 文件填充 DataView 然后 DataView 被输入到 DashBoard 其中包含绑定在一起的 LineChart 和 ChartRangeFilter 我的问题是 虽然 ChartRangeFilter

随机推荐

  • 使用 Javascript 检测浏览器是否支持 Web 开放字体格式 (Woff)

    我必须使用 JS jQuery 检测浏览器是否支持 Woff 然后向主体添加一个类 像这样的事情 if woffIsSupported body addClass modern 这有可能吗 谢谢您的回答 上面有一个功能这个帖子 called
  • cordova-plugin-fcm - FCMPlugin 未定义

    我正在使用 Ionic 2 并试图让推送通知正常工作 我已向 Firebase 注册了我的应用程序 并且可以成功向其推送通知 我现在需要进行设置 以便我可以从我的应用程序推送通知 所以我决定使用以下 Cordova 插件 cordova 插
  • 如何为默认 opencart 联系我们表单创建带有附加字段的副本

    在我的 opencart 模板中 我需要创建一个类似于联系表单的表单 其中包含姓名 电子邮件和手机号码字段 我已经在联系我们页面中使用了默认的联系我们表单 我需要为另一个表单创建这个新表单page 有没有免费的扩展可用 否则我们如何实现自己
  • 如何调整 PdfPTable 的大小以适合页面?

    我正在生成一个文档 如下面的代码所示 当然表的内容不同 但表的内容是不同的 我需要做的是确保该表的大小永远不会超过一页 无论单元格中的内容量如何 有办法做到吗 import com itextpdf text Phrase import c
  • 分割字符串并返回字符串数组

    I want split str能够采取 例如 bob is great 并返回 bob is great 更确切地说 foo split str bob is great 分配 bob is great in foo 从而成为一个由 3
  • 提取字符串的一部分

    我需要提取字符串的一部分 例如 01 nbsp nbsp nbsp Artist Name Song Title 所以我在开头有计数器 点和分隔符可以是任何东西 目前分隔符是 var separator nbsp nbsp nbsp 我想提
  • 即使在 android 9.0 (pie) 中启用了夜间模式,如何在我的应用程序中禁用夜间模式?

    我在 android 派发布之前创建了我的应用程序 在我放置的每个布局中android background white 它在每个设备上都能正常工作 但是当我的兄弟安装该应用程序并启用时night mode我的应用程序只需一个动作就变成了一
  • 自定义排序排序

    NET C 有没有办法对 a 进行排序List
  • Django i18n_patterns:resolve() 无法按预期工作

    解决这个问题后here 还有另外一个 如果你在这里使用翻译url系统https docs djangoproject com en 1 8 topics i18n translation 你会看到你添加了类似的模式urlpatterns i
  • 如何像 Instagram 一样在圆形图像视图周围设置边框?

    我想在圆形图像视图周围设置一个圆形边框 就像 Instagram 故事一样 有人可以帮忙吗 这是我的图像视图
  • 将命令添加到 Tkinter OptionMenu?

    我正在用 Python 2 7 8 编写一些代码 其中包括OptionMenu小部件 我想创建一个OptionMenu当选项更改时调用函数 但我也希望在列表中找到可能的选项 作为我的最终选项OptionMenu会有很多选择 我使用以下代码创
  • 在 postgres 中,使用表达式 array[] 与使用带有 {} 的数组的字符串表示形式有什么区别吗?

    使用两种不同的语法引用或创建数组有什么区别 array 1 2 3 vs 1 2 3 使用两者有什么好处吗 The ARRAY is the 表达与值构造函数 这 是字符串文字 constant 处理过程略有不同 但对于几乎用例来说 没有任
  • Launch4j / Windres:如何正确设置路径?

    我为我的项目配置了 launch4j 当我在 windowsXP 上开发时 我又使用了它 它在那里工作 现在我也需要它在 mac 上构建 我的build xml
  • 在 Mootools 中解析 XML

    似乎没有任何关于在 Mootools 中解析 XML 的有用文档 要么它太简单了 没有人愿意提及它 要么它太难了 每个人都放弃了尝试 有没有人有任何简单的跨浏览器方法来使用 Mootools 解析 XML 这是我的小 XML 文件 data
  • 将一个数据帧拆分为多个数据帧

    我有一个数据框 需要根据正则表达式搜索将其拆分为多个数据框 搜索没有固定的模式 即有时只有一个正则表达式 有时是多个正则表达式的组合 这是一个仅提取一组行的最小示例 Name lt c John Jane Arthur Maggie Age
  • 使用 Azure Active Directory 对用户进行身份验证后执行代码

    我使用 VS2015 创建了一个 ASP NET MVC Core 1 1 0 应用程序 在对话框中 我选择了连接到 Azure AD 的选项 因此 VS 生成了样板代码 并且正如预期的那样 应用程序将我重定向到 Microsoft 的登录
  • 插入一个元素

    Javascript中是否有一种方法可以在当前节点之后插入一个元素 我知道有一种方法可以在XML的当前节点之前插入一个元素 但是有没有一种方法可以在当前节点之后插入一个元素 在当前节点之后 只需获取当前节点的下一个兄弟节点并在该节点之前插入
  • 对单表使用 Merge 语句

    是否可以对单表使用merge语句 我想在插入之前检查是否已存在相同的值集 则应更新该记录 如果不存在 则应插入该记录 我在互联网上搜索过 但我得到了带有 2 个表的合并语句的示例 我在一张桌子上尝试过 但无法获得积极的结果 我试图检查的值将
  • Realm 数据库中的搜索操作速度

    这是我的模型RealmObject class public class ARDatabase extends RealmObject PrimaryKey private String uid private String namex p
  • 未捕获的类型错误:无法调用未定义的方法“hasChildNodes”

    我正在尝试使用 jquery 中的 ajax 请求读取 XML 下面是代码 它在 IE 中工作正常 但是当我在 Chrome 上运行它时 我遇到了这个错误 未捕获的类型错误 无法调用未定义的方法 hasChildNodes ajax typ