我正在尝试设置一个变量属性名称,即<a data-33="string">,其中33是Math.random()生成的随机数。

我努力了:

var randomNum1 = Math.floor(Math.random() * (200 - 100 + 1)) + 100;
var attrb = 'data-' + randomNum1.toString();
$(this).attr({
    attrb : 'someString',
    attrb2 : 'someString'
});


但是,它没有添加data-randomNumber =“ someString”的属性,而是添加了attrb =“ someString”

我正在尝试传递多个属性。我知道我缺少基本的javascript概念,但是任何帮助将不胜感激!

最佳答案

在执行操作时,{attrb: "something", attr2: "something"},键attrbattr2不会被评估并照原样使用。因此,您不能在那使用变量。

要解决您的问题,您可以做的是,使用两个参数调用attr()方法-1:属性,2:值:

var el = $(this);
el.attr(attrb, 'someString');
el.attr(attrb2, 'someString');


在这种情况下,将评估attr()的第一个参数,并将变量替换为值。

09-19 04:22