gpt4 book ai didi

javascript - 获取下一个同级父节点的子节点不工作 Javascript DOM

转载 作者:行者123 更新时间:2023-11-28 06:11:07 25 4
gpt4 key购买 nike

我有这段 HTML 代码。

<tbody>
<tr>
<td><a href='/some/link' class="image"> ... </a></td>
<td><a href="/some/link2" title="foo"> SOME TEXT </a></td>
</tr>
<tr>
<td> some td node that appears randomly </td>
<td><a href='/some/link' class="image"> ... </a></td>
<td><a href="/some/link2" title="foo"> SOME TEXT </a></td>
</tr>
</tbody>

我想要<td> <td> 的下一个兄弟元素元素为 class="image" 。感谢有人可以帮助我。下面的代码给了我未定义的信息。谢谢。

下面,我调用了parentElement class="image" 的节点的并指示它转到 nextSibling 节点,并获取 childNode该特定节点的,并最终得到文本。我不明白为什么它不起作用。

var nodes = document.querySelectorAll('tbody > tr > td > a.image');
return Array.prototype.map.call(nodes, function(e) {
return e.parentElement.nextSibling.childNodes[1].a.innerText;
}

网站网址:https://en.wikipedia.org/wiki/List_of_Nobel_Peace_Prize_laureates

Screenshot of HTML

我打算获取所有诺贝尔奖获得者的名字。

最佳答案

以下内容将起作用

Array.prototype.map.call(nodes, function(e) {
return e.parentElement.nextElementSibling.childNodes[1].innerText;
})

编辑:

根据给定的 wiki 链接,我们可以通过不同的方式来实现,其中之一如下。

假设每个tr将包含名称

var trs = document.querySelectorAll('.wikitable tr');// 'tbody > tr > td > a.image' will give a.image inside single tr also which may fail

Array.prototype.reduce.call(trs,function(result,tr){
var e = tr.querySelector('td .image')
if(e && e.parentElement.nextElementSibling)
result.push(e.parentElement.nextElementSibling.querySelector('a').innerText);
return result;
},[])

关于javascript - 获取下一个同级父节点的子节点不工作 Javascript DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36382638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com