设置div类以匹配其文本

时间:2016-08-04 15:01:40

标签: javascript jquery

我想将div的文本复制到其类中。我有下面的代码,但它复制了所有兄弟div的文本,但我只想要当前div的文本作为它的类。

就像下面的代码将复制“我是亚历克斯你好吗”作为代码下面的两个div的类,我希望第一个div应该只有类“我是亚历克斯”,同样下一个类应该只有一个类“你好吗?”

<div class="someText">I am alex</div>
<div class="someText">How are you</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js" type="text/javascript"></script>
<script>
    var classes = $(".someText").text().replace(/[, -- .]/g," "); 
    $(".someText").addClass(classes);
</script>

3 个答案:

答案 0 :(得分:2)

这是一个非常奇怪的要求,但您可以通过将函数传递给addClass()来实现它,如下所示:

&#13;
&#13;
$('.someText').addClass(function() {
  return $(this).text();
});
&#13;
.am {
  color: blue;
}
.are {
  color: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="someText">I am alex</div>
<div class="someText">How are you</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你需要遍历每个div。

&#13;
&#13;
$(function() {
  $('div.someText').each(function() {
    var classes = $(this).text().replace(/[, -- .]/g, " ");
    $(this).addClass(classes);
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="someText">I am alex</div>
<div class="someText">How are you</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

这是你想要的吗?

var divs = $(".someText");
for (var i = 0; i < divs.length; i++) {
    $(divs[i]).addClass($(divs[i]).text().replace(/[, -- .]/g," "));
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="someText">I am alex</div>
 <div class="someText">How are you</div>