首页 > 解决方案 > 如何操作此元素的子节点?

问题描述

我的 Chrome 扩展程序需要将子节点的大小更改为以下。

请注意如何为父 DIV 设置“宽度”……我的 Chrome 扩展程序就是这样做的。

我可以通过以下方式在控制台中显示以下元素:

var divContainer2 = $(divContainer)[0];
console.log('Now divContainer is: ', divContainer2); 

上面在控制台中显示的元素(只是它的开始,但显示了父/子关系):

<div class="v7wOcf ZGnOx" style="margin-top: 80px; width: 1207px;">
        <div jscontroller="Zptowf" jsaction="R6jwd:hKrBwc;c96EGd:v8OFqc;QmtCl:.CLIENT;qVp5ue:.CLIENT;AE9bOd:.CLIENT;MmB7ud:.CLIENT;zkkUY:.CLIENT;lyIVcf:.CLIENT;wuANJc:.CLIENT;voP7ud:.CLIENT" jsmodel="PuTOgd IaLzN tZ2gdc dSSknb PTCFbe ephE9e lkzLle OqPTdc nQnzVc VeaFK uArcre" data-without-stream-item-materials="" class="DReKqd" data-submission-id="1" data-view-id="46"><div jscontroller="cs6ocd" jsaction="rcuQ6b:npT2md;KDsQaf:Qp7hp;qFgNIJf-Wvd9Cc Yiql6e iTy5c editable" tabindex="0" role="textbox" aria-required="true" aria-multiline="true"

我想对孩子应用类似的样式(第二行的 DIV ......带有'jscontroller')。

为了使事情变得非常明确,我尝试过:

var divContainer3 = divContainer2[0];
var divContainer3 = divContainer2.children[0]; 

和别的...

我错过了什么?为什么我不能抓住我可以如此清晰地推送到控制台和操作的对象的子节点?

感谢您的任何帮助/方向/指导...

标签: javascriptjquerygoogle-chrome-extension

解决方案


问题不在于语法......它是动态内容加载......所以当我抓住 childNodes(或试图)时,元素不存在。

让我感到困惑的是,CONSOLE 将显示一个在 console.log 中调用的元素,即使它在特定代码行运行时并不存在。

所以我可以在控制台中看到元素,它是节点/长度,但是下一行代码只是简单地记录了长度将归零。因为当长度代码运行时,该元素并不真正存在。

我添加了一些“等待”程序,以确保在我尝试操纵它之前它就在那里。


推荐阅读