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

我正在使用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}); 

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

我猜你应该用这个

 jQuery('#div').attr(attname,attvalue); 

是的,但之前使用data-前缀以避免冲突

 $('elm').attr('data-'+attname,attvalue); 

使用data-前缀不需要HTML5。

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

 $('#foobar').attr('foo','bar'); 

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

 
asdf
alert($('div').data('test')); var t = 'data-test2'; var v = 'hiho'; $('div').attr(t,v); alert($('div').data('test2')); alert($('div').attr('data-test2'));

这一切对我有用 : http : //jsfiddle.net/r7uQ8/在jquery 1.4.4上测试过

方括号表示法是你的朋友:

 var attname = "haha"; jQuery('#div')[0][attname] = "foo"; alert(jQuery('#div')[0][attname]); 

http://jsfiddle.net/KJBHq/