当前位置: 首页 > 知识库问答 >
问题:

尝试遍历DOM,但未定义未捕获的TypeError parentNode

简嘉赐
2023-03-14

我正试图从jQuery转向普通javascript,但在遍历DOM时遇到了困难,就像使用jQuery一样。在写入DOM之后,试图向上移动DOM结构时,我收到了一个“uncattleTypeError:html.parentNode is undefined”错误。代码如下:

JavaScript

let html = 'change to this';

let eA = document.querySelector('.startA');

eA.parentNode
    .querySelector('.target1A .target2A')
    .innerHTML = html
    .parentNode
    .querySelector('.target1A')
    .classList
    .remove('hidden');

HTML

<div id="top">
    <div class="startA">
        <div class="target1A hidden">
            <div class="target2A">target 1</div>
        </div>
    </div>
</div>

我似乎不明白为什么会这样。我想我还没有完全理解如何在DOM中移动。非常感谢任何帮助。

谢谢

共有1个答案

沈栋
2023-03-14

赋值运算符的优先级较低。您的代码相当于:

const result = html
    .parentNode
    .querySelector('.target1A')
    .classList
    .remove('hidden');

eA.parentNode
    .querySelector('.target1A .target2A')
    .innerHTML = result;

这是行不通的--你不能像你想要做的那样给赋值运算符上链。在插入HTML后选择该元素,作为单独的语句。

您也不需要选择target1a,因为它已经是target2a的父级。

const target = eA.parentNode.querySelector('.target1A .target2A');
target.innerHTML = html;
target.parentNode
    .classList
    .remove('hidden');

null

const eA = document.querySelector('.startA');
const target = eA.parentNode.querySelector('.target1A .target2A');
target.innerHTML = 'foobar';
target.parentNode
    .classList
    .remove('hidden');
<div id="top">
    <div class="startA">
        <div class="target1A hidden">
            <div class="target2A">target 1</div>
        </div>
    </div>
</div>
 类似资料:
  • 问题内容: 我在简单的jsp上遇到此错误:未捕获的ReferenceError:未定义$ 我只是试着在eclipse上的其他项目上调用服务,但似乎不起作用。 代码在这里: 更新: 尝试使用Google CDN的jQuery,但仍然无法正常工作 未捕获的ReferenceError:$未定义sendobject @ index.jsp:15onclick @ index.jsp:28 因为该问题的所

  • 问题内容: 我正在尝试将Admin Widget与两个DateField一起使用在我的配方中,但是只有第一个可以正确显示Widget,而另一个则出现错误: DateTimeShortcuts.js:205未捕获的ReferenceError:未定义django (指示的行是: ) 这是我的模板头: 我的模型领域: 和我的形式课: 我想这是某种渲染规则,但我完全感到困惑。欢迎任何帮助! 问题答案:

  • 我遇到了一个HTML/JavaScript的问题,在过去的7个小时里,我在web上找不到一个解决方案,尽管有人问过类似的问题!所有的解决方法都没有帮助我。 我的问题是以下错误:未捕获的ReferenceError:HtmlDivelement.onClick中未定义函数 当我按下一个应该触发该功能的按钮时,我会得到这个错误。该函数称为onclick,onclick属性附加到一个div对象。 nul

  • 我得到一个错误“Uncathed ReferenceError:regeneratorRuntime未定义”。请帮助我找出错误,以及如何解决它。

  • 我试图以编程方式创建一个饼图,希望把它变成一个React组件来重用。基本上,我需要一个饼图,是可点击的,每个切片扩展成一个整体饼当点击。我试图按照这个教程来制作饼图,在底部,我有一个JS的一部分,我试图测试出来。我最终得到了以下是错误消息的截图。 我的理解是,这不是jQuery,只是一个普通的JS。我不确定这是不是真的。我通过CDN导入jQuery,但仍然得到相同的错误。我读了这篇文章,我认为只是

  • 问题内容: 我正在尝试在React JS中使用DRY。我正在尝试在不同文件中使用相同的HTML部分 部分: 我在另一个文件中请求它: 但是我遇到一个错误: 该脚本包含在html页面中,例如: 我正在使用webpack 问题答案: 如果您未使用任何webpack等模块捆绑程序,则应将组件分配给某些javascript全局对象,因为.jsx中的对象未置于全局范围内 所以这是解决方案(这里使用了 窗口