是否可以使用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。
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]);