Ответ 1
Думаю, вы должны использовать этот
jQuery('#div').attr(attname,attvalue);
Я использую jquery 1.5 и стандарт html4.
Я пытаюсь установить пользовательский атрибут, который я получаю по переменной javascript, но он не устанавливает пример sample.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(). так как они синтаксически различны. если есть какой-то другой способ, пожалуйста, предложите Спасибо.
Думаю, вы должны использовать этот
jQuery('#div').attr(attname,attvalue);
Да, но прежде чем использовать префикс data-
, чтобы избежать столкновения
$('elm').attr('data-'+attname,attvalue);
Использование префикса data-
не требует HTML5.
Да вы можете добавить любой атрибут, который вы хотите, просто будьте осторожны:
$('#foobar').attr('foo','bar');
http://jsfiddle.net/each/rnnfk/ - ознакомьтесь с этой демонстрацией
<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
Обозначение квадратной скобки - ваш друг:
var attname = "haha";
jQuery('#div')[0][attname] = "foo";
alert(jQuery('#div')[0][attname]);