Javascript 如何获得父母';s特定的下一个和上一个兄弟姐妹';jQuery中的孩子是谁?
这是标记:Javascript 如何获得父母';s特定的下一个和上一个兄弟姐妹';jQuery中的孩子是谁?,javascript,jquery,html,css,dom,Javascript,Jquery,Html,Css,Dom,这是标记: <h2> <a href="link1.html">text One for link One</a> </h2> <p> More text related to link one</p> <h2> <a href="link2.html">text Two for link Two</a> </h2> <p> More text rela
<h2>
<a href="link1.html">text One for link One</a>
</h2>
<p> More text related to link one</p>
<h2>
<a href="link2.html">text Two for link Two</a>
</h2>
<p> More text related to link two</p>
<h2>
<a href="link3.html">text Three for link Three</a>
</h2>
<p> More text related to link three</p>
。这是初始链接。我的理解是,。最近的
将带我到父h2
标签,从那里我可以到达下一个和上一个h2
标签.find
应该会让我找到链接,最后.attr(href)
会让我找到属性
现在,上一个和下一个元素可能不存在。为什么我无法获得正确的链接?我得到的只是未定义的。例如,如果我在link2.html
,我希望prevLink
是link1.html
,而nextLink
是link3.html
谢谢。方法.next()
/.prev()
只选择紧跟其后或之前的元素,这意味着如果h2
元素之间有一个同级p
元素,它将不会选择任何内容
您可以改用.nextAll()
/.prevAll()
方法。然后链接.first()
方法以获取集合中的第一个元素:
var prevLink = $(this).closest('h2').prevAll('h2').first().find('a').attr('href');
var nextLink = $(this).closest('h2').nextAll('h2').first().find('a').attr('href');
.next()
/.prev()
方法仅选择紧跟其后或之前的元素,这意味着如果h2
元素之间有一个同级p
元素,则它不会选择任何内容
您可以改用.nextAll()
/.prevAll()
方法。然后链接.first()
方法以获取集合中的第一个元素:
var prevLink = $(this).closest('h2').prevAll('h2').first().find('a').attr('href');
var nextLink = $(this).closest('h2').nextAll('h2').first().find('a').attr('href');
但是该网站说,.next
将获得匹配元素集中每个元素的紧随其后的同级元素。
是h2
不是具有特定选择器的紧随其后的同级元素吗?我现在知道了。如果我错了,请纠正我.next
和。previous
不继续查找下一个特定的兄弟姐妹,除非它是匹配的,而只查找直接元素。@sanjeethigh-Correct。这些方法仅选择紧跟其后或之前的元素。如果它不是h2
元素,则不选择任何内容。该方法不会一直寻找下一个h2
元素。这就是为什么要使用.nextAll()
或.prevAll()
。这些方法将选择以下或之前的所有h2
元素和.first()
将选择第一个。但是网站上说。next
将获取匹配元素集中每个元素的紧随其后的同级。
是h2
不是具有特定选择器的紧随其后的同级吗?我现在就知道了。如果我错了,请纠正我.next
和。previous
不继续查找下一个特定的兄弟姐妹,除非它是匹配的,而只查找直接元素。@sanjeethigh-Correct。这些方法仅选择紧跟其后或之前的元素。如果它不是h2
元素,则不选择任何内容。该方法不会一直寻找下一个h2
元素。这就是为什么要使用.nextAll()
或.prevAll()
。这些方法将选择以下或之前的所有h2
元素,.first()
将选择第一个元素。