2014-09-18 88 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/