jquery:如何找到在当前元素之前出现2个元素的元素

时间:2010-03-29 09:30:26

标签: c# javascript jquery

我有一个看起来像这样的标记:

<h3>Paragraf3-dummytext</h3>
<p>
<a name="paragraf3">
Quisque id odio. Praesent venenatis metus at tortor pulvinar varius. Lorem ipsum dolor sit 
</a>
</p>

我想要做的是找到所有带有'name'属性的'a'标签,并找到该锚点的'h3'标签;我想这样做:

var paragraf = [];
var paragrafheading = [];
$('a[name]').each(function() {
paragraf.push($(this).attr('name'));
paragrafheading.push($(this).prev().text());

但它不起作用,因为文本周围有一个'p'标记。

3 个答案:

答案 0 :(得分:1)

你可以这样做:

paragrafheading.push($(this).parent().prev().text());

如果a周围并不总是段落,或者你不知道锚点在h3之前有多少父母,你可以这样做:

paragrafheading.push($(this).closest('> h3').find('> h3').text());

答案 1 :(得分:0)

不确定这是不是最好的方法,但是你可以在h3上做每个(),直到找到包含你想要的'a'标签的那个吗?

答案 2 :(得分:0)

paragrafheading.push($(this).parents('p')[0].prevAll('h3')[0].text());

这样做意味着即使结构在未来发生变化,你仍然可以获得第一个祖先h3元素关于在标签之前的dom树中有多少段等等