我想用id btn-2018替换整个页面中类readMore的每个实例。
我想应该很容易
$('.readMore').attr('id', 'btn-2018');
$('#btn-2018').removeClass('readMore');
出于某种原因,加载该脚本只会替换第一个实例。
答案 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”等)。