2014-09-18 35 views
0

給定此設置,如何在Class1 div之前添加NEW_CONTENT,方法是定位unique_URL_A通過選擇內部href屬性將內容添加到外部div

<div class="Class1"> 
<div class="Class2"> 
<a href="unique_URL_A">Link</a> 
</div> 
</div> 

<div class="Class1"> 
<div class="Class2"> 
<a href="unique_URL_B">Link</a> 
</div> 
</div>` 

這是我已經試過。但是,當然,這會增加<a>前後內容不是之前Class1 ...

$(".Class1 a[href*='unique url A']").before("<div>NEW_CONTENT</div>"); 

回答

0

這是因爲,根據您的選擇,$(".Class1 a[href*='unique url A']"),該.before()方法當然會在<a>元素的前預先準備內容。因此你的原始代碼的邏輯是:

  1. 如果<a>元素的href屬性相匹配的專屬網址建立一個
  2. 而且它是.Class
  3. 孩子然後附加在<a>
前新內容

爲了將<div>前面的新內容與類.Class1附加在一起,您需要選擇相應的元素,例如:

$(".Class1").has("a[href*='unique_URL_A']").before("<div>NEW_CONTENT</div>"); 

修訂後的邏輯是:

  1. 如果.Class1包含的子<a>元素,其href屬性相匹配唯一的URL一個
  2. 附加在.Class1

見前面的新內容小提琴:http://jsfiddle.net/teddyrised/jmovct60/