是否可以使用JS变量通过jQuery attr()函数设置自定义属性

rai*_*ain 14 jquery custom-attributes

我正在使用jquery 1.5和html4标准.
我正在尝试设置我通过javascript变量获取的自定义属性,但它没有设置up.code示例:

var attname="list1"; // this is changed on every call of the function where it is defined.    
var attvalue="b,c,d"; // this also changed.  
jQuery('#div1').attr({attname:attvalue});
Run Code Online (Sandbox Code Playgroud)

但它将attname视为字符串本身而非变量.还有其他选项,比如使用data(),prop()但是HTML5和jquery 1.6支持它们,这对我来说是不可能的.另外一个问题是无法在服务器端设置数据以便同步和使用客户端通过jquery data().因为它们在语法上是差异的.如果有其他方式请建议谢谢.

Sed*_*şar 26

我想你应该用这个

jQuery('#div').attr(attname,attvalue);
Run Code Online (Sandbox Code Playgroud)


Muh*_*man 13

是的,但data-之前使用前缀以避免碰撞

$('elm').attr('data-'+attname,attvalue);
Run Code Online (Sandbox Code Playgroud)

使用data-前缀不需要HTML5.


dar*_*ryl 7

是的,您可以添加任何您想要的属性,请注意:

$('#foobar').attr('foo','bar'); 
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/each/rnnfk/ - 查看此演示