jquery:如何找到在当前元素之前出现2个元素的元素
我有一个看起来像这样的标记:
Paragraf3-dummytext
Quisque id odio. Praesent venenatis metus at tortor pulvinar varius. Lorem ipsum dolor sit
我想要做的是找到所有带有’name’属性的’a’标签,找到该锚点的’h3’标签; 我想这样做:
var paragraf = []; var paragrafheading = []; $('a[name]').each(function() { paragraf.push($(this).attr('name')); paragrafheading.push($(this).prev().text());
但它不起作用,因为文本周围有一个’p’标签。
你可以做:
paragrafheading.push($(this).parent().prev().text());
如果a周围并不总是段落,或者你不知道锚点在h3之前可以有多少父母,你可以这样做:
paragrafheading.push($(this).closest('> h3').find('> h3').text());
不确定这是不是最好的方法,但是你可以在h3上做每个(),直到找到包含你想要的’a’标签的那个吗?
paragrafheading.push($(this).parents('p')[0].prevAll('h3')[0].text());
这样做意味着即使结构在将来发生变化,你仍然可以获得第一个祖先h3元素在a标签之前的dom树中有多少个段落等等。