我有一个看起来像这样的标记:
<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'标记。
答案 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树中有多少段等等