[英]jquery: how to find an element which is coming 2 elements before current element
我有一個看起來像這樣的標記:
<h3>Paragraf3-dummytext</h3>
<p>
<a name="paragraf3">
Quisque id odio. Praesent venenatis metus at tortor pulvinar varius. Lorem ipsum dolor sit
</a>
</p>
我想要做的是找到所有具有“名稱”屬性的“ 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上執行each(),直到找到包含所需'a'標簽的那個了嗎?
paragrafheading.push($(this).parents('p')[0].prevAll('h3')[0].text());
這樣做意味着即使將來結構發生變化,您仍然可以在dom樹中的a標記之前獲得第一個祖先h3元素關於dom段落等方面的信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.