2011-09-21 8 views
11

Estoy usando jquery 1.5 y html4 estándar.
estoy tratando de establecer atributo personalizado, que me sale por la variable javascript, pero no se muestra la configuración up.code:es posible establecer un atributo personalizado mediante la función jQuery attr() utilizando las variables JS

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}); 

pero tratar attName como la propia cadena bastante variable. hay otra opción como usar data(), prop() pero son compatibles con HTML5 y jquery 1.6 que no me es posible en este momento. Otro problema es que los datos no se pueden configurar en el servidor para sincronizarlos y usarlos en el lado del cliente por jquery data(). ya que son sintácticamente diff. si hay alguna otra manera favor de sugerir Gracias.

+0

** karim79 ** Gracias por editar @Sedat gracias a señalar el error de sintaxis que estaba haciendo. ** Brogrammer **, ** Usman **, ** Andy ** Agradecemos a todos por proporcionarnos que todos los comentarios fueron correctos de una u otra manera. – rain

Respuesta

20

Creo que se debe utilizar este

jQuery('#div').attr(attname,attvalue); 
2
<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')); 

funciona todo esto para mí: http://jsfiddle.net/r7uQ8/ probado en jQuery 1.4.4

+1

Bastante seguro si lees su pregunta, él no quiere el uso de atributos de datos. – daryl

+0

@Brogrammer: Hm Lo entendí de esa manera, que quiso decir que no puede usar datos porque pensó que solo funcionan en jquery 1.6. Entonces señalé que también funcionan en 1.4.4. Y usarlos sería más elegante en mi opinión. – Andy

10

Sí, pero el uso de data- prefijo antes para evitar la colisión

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

El uso del prefijo data- no requiere HTML5.

Cuestiones relacionadas