javascript - 在 DOM 中找不到 nextElement / nextElementSibling。是因为是img吗?
问题描述
我无法使用一些 JavaScript 代码在 DOM 中查找下一个元素。我想更改 img src,但是当我尝试访问 img 元素时,即使它在那里,我也会得到“null”。
谢谢P
我试过 nextElement 和 nextElementSibling 无济于事
var node1 = document.getElementById('ctl00_ctl39_g_1398ff2c_c26e_44d8_b382_346b589f7224_tvLinksn0');
console.log('1 ... ' + node1.id);
var node1img = document.getElementById(node1.id).href;
console.log('3 ... ' + node1img);
console.log('3 ... ' + document.getElementById(node1.id).nextElementSibling);
<table cellpadding="0" cellspacing="0" style="border-width:0;">
<tr>
<td>
<a id="ctl00_ctl39_g_1398ff2c_c26e_44d8_b382_346b589f7224_tvLinksn0" href="javascript:TreeView_ToggleNode(ctl00_ctl39_g_1398ff2c_c26e_44d8_b382_346b589f7224_tvLinks_Data,0,ctl00_ctl39_g_1398ff2c_c26e_44d8_b382_346b589f7224_tvLinksn0,' ',ctl00_ctl39_g_1398ff2c_c26e_44d8_b382_346b589f7224_tvLinksn0Nodes)">
<img src="http://intranetnlb/PublishingImages/plus.gif" alt="Expand <div class='treeviewHeadingPre'></div><div class='treeviewHeading'>An Post Subsidiaries</div>" style="border-width:0;" />
</a>
</td>
</tr>
</table>
我希望找到 img 标签
解决方案
<img>
是你的a
元素的一个孩子。它不在它旁边:
node1.getElementsByTagName("img")[0];
请注意,这document.getElementById(node1.id)
是多余的,因为node1
已经包含该元素。
src
以获取属性为例进行演示:
var node1 = document.getElementById('ctl00_ctl39_g_1398ff2c_c26e_44d8_b382_346b589f7224_tvLinksn0');
console.log('1 ... ' + node1.id);
var node1img = node1.href;
console.log('3 ... ' + node1img);
console.log('3 ... ' + node1.getElementsByTagName("img")[0].src);
<table cellpadding="0" cellspacing="0" style="border-width:0;">
<tr>
<td>
<a id="ctl00_ctl39_g_1398ff2c_c26e_44d8_b382_346b589f7224_tvLinksn0" href="javascript:TreeView_ToggleNode(ctl00_ctl39_g_1398ff2c_c26e_44d8_b382_346b589f7224_tvLinks_Data,0,ctl00_ctl39_g_1398ff2c_c26e_44d8_b382_346b589f7224_tvLinksn0,' ',ctl00_ctl39_g_1398ff2c_c26e_44d8_b382_346b589f7224_tvLinksn0Nodes)">
<img src="http://intranetnlb/PublishingImages/plus.gif" alt="" style="border-width:0;" />
</a>
</td>
</tr>
</table>
节点:您的alt
标签<img>
似乎破坏了您的标记,因为它的内容没有正确转义。因此,我将其从答案中删除。
推荐阅读
- javascript - CSS 变量 Polyfil - 用于 LitePicker JS 的 IE11
- c# - System.InvalidCastException 与 iennumrable 演员
- android-studio - 不推荐使用 setDrawerLayout(androidx.drawerlayout.widget.DrawerLayout)
- mongodb - 如何在一次查询中根据 Mongoose(MongoDB)中的日期获取客户计数?
- reactjs - 减速器和状态之间的类型错误
- laravel - laravel 设置 ckeditor/ckeditor5-export-pdf
- python - 如何校正 3D 模型的法线向量?
- java - 我应该为每个独立的逻辑创建单独的 Android 片段吗?
- python - FastAPI 等效于 Flask 的 request.form,用于不可知的表单
- kedro - “Hello_World”教程的数据版本控制