Javascript 无法使用attr()更改“类”

Javascript 无法使用attr()更改“类”,javascript,jquery,html,Javascript,Jquery,Html,var allp=$divp; 对于var i=0;i{ const$newEl=$el.attr'class','newClass-${index+2}` console.log$newEl[0] } 1 2 3 4 5 只需忽略for循环: var allp=$divp; allp.attrclass,i,n=>Numbern+1; console.logallp 1 2 3 4 5 您只需要获得每个p元素的class属性值,在将其转换为数字后将其递增,然后将该值指定给与新文本值相同的元素

var allp=$divp; 对于var i=0;i1

2

3

4

5


您可以使用jquery。获取类,将其解析为int和increment。如果您的类中没有数字字符,它将抛出一个错误,尽管您可能希望进行检查!伊斯南

也许:

用于迭代$allp中的每个元素,然后设置新的类名

变量$allp=$divp $。每个$allp,索引,el=>{ const$newEl=$el.attr'class','newClass-${index+2}` console.log$newEl[0] }

1

2

3

4

5

只需忽略for循环:

var allp=$divp; allp.attrclass,i,n=>Numbern+1; console.logallp

1

2

3

4

5


您只需要获得每个p元素的class属性值,在将其转换为数字后将其递增,然后将该值指定给与新文本值相同的元素

var allp=$divp;
forvar i=0;我检查这篇文章:这不是我看到的结果:我假设console.log与此不完全一样,您希望返回Numbern+1;没有n+=1,没有循环?@user10968312你能添加预期的输出吗?所以我没有让n成为一个数字?不,在你的代码中“n”是一个字符串,而不是添加串接,你是对的。但是由于jQuery的隐式迭代,这里的for循环是不必要的。这里的for循环是不必要的?@user10968312您可以通过for循环来完成它,但是没有它更简单。另外,如果您创建一个循环并将一个函数传递给.attr,那么您的代码将被多次处理。但是如果我不使用for循环,我在这里的意思是什么?在使用for时,它应该是索引loop@user10968312i被传递给处理“重新分类”的函数,但在本例中没有使用它。通过在不使用for循环的情况下传递i和n,函数仍然可以操作每个p的类名,对吗?我以前忘记发布预期的输出。我的意思是更改类名,而不是更改p的内容
$('div p').each(function(){
    console.log(parseInt($(this).attr('class')) + 1);
});
var allp = $("div p");
for (var i = 0; i < allp.length; i++) {
    allp.attr("class", function (i, n) {
        const n2 = Number(n) + 1;
        return n2;
    });
    console.log(allp[i]);
}