jQuery用ID替换类

时间:2018-08-08 10:12:59

标签: jquery

我想用id btn-2018替换整个页面中类readMore的每个实例。

我想应该很容易

   $('.readMore').attr('id', 'btn-2018');
$('#btn-2018').removeClass('readMore');

出于某种原因,加载该脚本只会替换第一个实例。

3 个答案:

答案 0 :(得分:3)

在jQuery循环上运行每个项目,然后应用ID,同时在每次迭代中删除类。

$('.readMore').each(function() {
    $(this).attr('id', 'btn-2018');
    $(this).removeClass('readMore');
});

如果要动态生成ID,可以尝试以下操作之一:

var i = 0;
$('.readMore').each(function() {
    $(this).attr('id', 'btn-' + i);
    $(this).removeClass('readMore');
    i++;
});

答案 1 :(得分:1)

您可以这样做,但是您确实不想包含多个元素。 ID在html中必须唯一。

$('.readmore').attr('id', 'btn-2018').removeClass('readMore');

$('p').each(function(){
  console.log($(this).attr('id'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="readmore">Read more..</p>
<p class="readmore">Read more..</p>

答案 2 :(得分:0)

使用ID时,您只会获得具有该ID的第一个元素(因为该ID是唯一的)。 如果您想从所有元素中删除该类,请使用该类,就像使用该属性一样- $('.readMore').removeClass('readMore');

但是,正如我提到的,您不应该为多个元素使用相同的ID。也许您应该使用其他类,或在ID中添加一个数字,使其具有唯一性(“ btn-2018-1”,“ btn-2018-2”等)。