通过选择内部href属性将内容添加到外部div

时间:2014-09-18 20:37:42

标签: javascript jquery

根据此设置,如何通过定位Class1unique_URL_A div之前添加NEW_CONTENT?

<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>");

1 个答案:

答案 0 :(得分:0)

这是因为基于您的选择器$(".Class1 a[href*='unique url A']").before()方法当然会在<a>元素前面添加内容。因此,原始代码的逻辑是:

  1. 如果<a>元素的href属性与唯一网址A
  2. 匹配
  3. 并且它是.Class
  4. 的孩子
  5. 然后在<a>
  6. 前添加新内容

    为了将新内容附加到<div>.Class1前面,您需要选择元素本身,例如:

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

    修订后的逻辑将是:

    1. 如果.Class1包含其href属性与唯一网址A匹配的子<a>元素
    2. .Class1
    3. 前添加新内容

      请参阅小提琴:http://jsfiddle.net/teddyrised/jmovct60/