想要为具有特定文本的元素添加类,否则添加另一个类

时间:2018-04-06 08:19:42

标签: jquery

我的网站上有这样的结构:

<p class="class_1">
    <a>text1</a>
    <a>text2</a>
    <a>text3</a>
</p>

我想为每个“a”元素添加类,以便有类似的东西:

<p class="class_1">
    <a class="class_3">text1</a>
    <a class="class_2">text2</a>
    <a class="class_3">text3</a>
</p>

将class_2添加到包含text2或text6的元素,并将class_3添加到其他所有元素。

我写了一些jquery:

jQuery(document).ready(function() {
  jQuery(".class_1 a").each(function() {
    if (jQuery(this).is(":contains('text2'), :contains('text6')")) {
      jQuery(this).addClass("class_2");
    };
    else {
      jQuery(this).addClass("class_3");
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="class_1">
  <a>text1</a>
  <a>text2</a>
  <a>text3</a>
</p>

我的其他地方一定有问题(因为没有它可以添加class_2):D

请注意,我根本不是开发者(只知道一些基础知识),善待;)

感谢您的帮助

1 个答案:

答案 0 :(得分:-1)

您可以简单地遍历所有a元素,并根据您的条件添加类:

&#13;
&#13;
$(document).ready(function(){
  $('a').each(function(){
    var text = $(this).text();
    if(text === 'text2' || text === 'text6'){
       $(this).addClass('class_2');
    } else {
       $(this).addClass('class_3');
    }
  });
});
&#13;
.class_2{
  color: green;
}

.class_3{
  color: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="class_1">
    <a>text1</a>
    <a>text2</a>
    <a>text3</a>
    <a>text4</a>
    <a>text5</a>
    <a>text6</a>
</p>
&#13;
&#13;
&#13;