如果div中的锚包含前一个div中的锚文本,则运行jQuery

时间:2015-03-27 12:42:18

标签: jquery

这在jQuery中甚至可能吗?

基本上我有两个div

<div class="first">
    <a href="#">Some random link</a>, 
    <a href="#">second random link</a>, 
    <a href="#">other random link</a>
</div>
<div class="second">
    <a href="#">second random link</a>
    <a href="#">third random link</a>
    <a href="#">tenth random link</a>
</div>

我想要的是,如果第二个div中的锚中的文本与来自第一个div的锚中的文本匹配(每个页面上不同),则运行jQuery(将类添加到包含第二个div中的锚中匹配的文字)。

2 个答案:

答案 0 :(得分:5)

使用$.each()循环第二个DIV中的锚点。然后,您可以测试其文本是否位于第一个DIV中的任何锚点中。

&#13;
&#13;
$("#doit").click(function() {
  $(".second a").each(function() {
    var text = $(this).text();
    if ($(".first a:contains(" + text + ")").length) {
      $(this).addClass("matched");
    }
  });
});
&#13;
.matched {
  color: green;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="first">
  <a href="#">Some random link</a>,
  <a href="#">second random link</a>,
  <a href="#">other random link</a>
</div>
<div class="second">
  <a href="#">second random link</a>
  <a href="#">third random link</a>
  <a href="#">tenth random link</a>
</div>
<button id="doit">Click to test</button>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

检查一下它会对你有用。

if($( ".first:contains('"+$('.second').text()+"')" ).length > 0) {
  //apply your logic here..
}