jQuery img alt属性,末尾带有变量

jQuery img alt属性,末尾带有变量,jquery,alt,Jquery,Alt,我试图在alt属性的末尾添加一个变量,以使页面上的所有alt都不同。这怎么可能呢 此代码有效 $('.MyClassName img:not([alt])').attr('alt', 'Alternative text'); 但是这个代码需要更改-它不起作用 var x = 1; $('.rte img:not([alt])').attr('alt', 'Alternative text' + $x); 在代码中,声明的变量是x而不是$x。使用$声明变量或更新attr()以使用定义的变量。下

我试图在
alt
属性的末尾添加一个变量,以使页面上的所有alt都不同。这怎么可能呢

此代码有效

$('.MyClassName img:not([alt])').attr('alt', 'Alternative text');
但是这个代码需要更改-它不起作用

var x = 1;
$('.rte img:not([alt])').attr('alt', 'Alternative text' + $x);

在代码中,声明的变量是
x
而不是
$x
。使用
$
声明变量或更新
attr()
以使用定义的变量。下面以不同的方式声明变量

注意:下面的代码将尝试使用
MyClassName
css类更新所有元素。根据需要更新选择器

$('.MyClassName').attr('alt','Alternative text');
log($('.MyClassName').attr('alt'));
var x=1;
$('.MyClassName').attr('alt','Alternative text'+x);
log($('.MyClassName').attr('alt'));
变量$x='$1';
$('.MyClassName').attr('alt','Alternative text'+$x);
log($('.MyClassName').attr('alt'));
//不会像未定义的$y一样工作
变量y=1;
$('.MyClassName').attr('alt','Alternative text'+$y);
log($('.MyClassName').attr('alt'))

在代码中,声明的变量是
x
而不是
$x
。使用
$
声明变量或更新
attr()
以使用定义的变量。下面以不同的方式声明变量

注意:下面的代码将尝试使用
MyClassName
css类更新所有元素。根据需要更新选择器

$('.MyClassName').attr('alt','Alternative text');
log($('.MyClassName').attr('alt'));
var x=1;
$('.MyClassName').attr('alt','Alternative text'+x);
log($('.MyClassName').attr('alt'));
变量$x='$1';
$('.MyClassName').attr('alt','Alternative text'+$x);
log($('.MyClassName').attr('alt'));
//不会像未定义的$y一样工作
变量y=1;
$('.MyClassName').attr('alt','Alternative text'+$y);
log($('.MyClassName').attr('alt'))

您需要在循环中执行此操作。尝试使用:


你需要在一个循环中完成这项工作。尝试使用:


$x
!=<代码>x
。投票结束typo@RoryMcCrossan他还需要一个回路(除非他希望与选择器匹配的每个元素都具有相同的
alt
值。假设有多个
img
,则您是正确的。但是OP声明第一行工作正常,因此情况似乎并非如此。
$x
!=
x
。投票结束typo@RoryMcCrossan他还需要一个环(除非他希望与选择器匹配的每个元素都具有相同的
alt
值。假设有多个
img
,则您是正确的。但是OP声明第一行工作正常,因此情况似乎并非如此。我很确定这将为所有t的
alt
属性分配相同的值。)hings被归类为
.MyClassName
@JeromyFrench是的,这只是为了演示。OP在问题中已经有了一些结构,但还没有发布HTML标记。在answerFair中添加了一个注释…但OP确实声明“使页面上的所有Alt都不同”。我怀疑这就是OP的想法。这看起来也不错。但是
x
应该在循环内更新,否则它也会给出与我相同的结果。我非常确定这会为所有被归类为
的事物的
alt
属性分配相同的值。MyClassName
@JeromyFrench是的,这只是为了演示目的。OP在问题中已经有了一些结构,但还没有发布HTML标记。在answerFair中添加了一个注释…但OP确实声明“使页面上的所有Alt都不同”。我怀疑这就是OP的想法。这看起来也不错。但是
x
应该在循环中更新,否则它也会给出与我相同的结果。仅供参考,你不需要
each()
来实现这一点:
$('.rte img:not([alt])。attr('alt,(I)=>`Alternative text${I}`;
仅供参考,你不需要
each()
对于此:
$('.rte img:not([alt])).attr('alt',(i)=>`可选文本${i}`);
var x = 1;
$('.rte img:not([alt])')
    .each(function(index){
        /* do something with x here, or use `index` if you just want an incrementing counter */
        $(this).attr('alt', 'Alternative text' + x);
    });