我正在使用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()。因为它们在语法上是差异的。 如果有其他方式请建议 感谢。
答案 0 :(得分:24)
我猜你应该用这个
jQuery('#div').attr(attname,attvalue);
答案 1 :(得分:12)
是的,但请先使用data-
前缀以避免冲突
$('elm').attr('data-'+attname,attvalue);
使用data-
前缀不需要HTML5。
答案 2 :(得分:6)
答案 3 :(得分:3)
<div data-test="lala">asdf</div>
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上测试
答案 4 :(得分:1)
方括号表示法是你的朋友:
var attname = "haha";
jQuery('#div')[0][attname] = "foo";
alert(jQuery('#div')[0][attname]);