Ver Mensaje Individual
  #7 (permalink)  
Antiguo 16/05/2014, 21:47
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: Cuidado con las comillas en javascript

Además de la forma que menciona Triby para asignar propiedades a un elemento con jQuery, también puedes hacerlo con JS nativo.

Código Javascript:
Ver original
  1. var input = document.createElement("input"),
  2.     fn = function(){
  3.         alert("Estás escribiendo");
  4.     },
  5.     definirProp = function(elem, prop){
  6.         for (var p in prop)
  7.             elem[p] = prop[p];
  8.         return elem;
  9.     },
  10.     invocar = new definirProp(input, {
  11.         type: "text",
  12.         id: "ejemplo",
  13.         className: "classEjemplo",
  14.         value: "Valor de ejemplo",
  15.         onkeypress: fn
  16.     });
  17.  
  18. document.body.appendChild(invocar);

De esta forma, creo un <input>, al cual le asigno propiedades y valores a través de una función. Para esto, la función recibe dos parámetros: el elemento y un objeto literal con las propiedades y valores que deseo asignar. Como extra, creé una función de nombre fn para asignarla al evento onkeypress del [inline]<input>[/input]. En la función definirProp, itero sobre el objeto literal, asignando cada propiedad al [inline]<input>[/input] y a estos, los valores respectivos.

Incluso podrías hacer crecer más esta función y darle la posibilidad al usuario de crear el elemento que quiera.

Código Javascript:
Ver original
  1. var obj = prompt("Ingrese el elemento a crear"),
  2.     fn = function(){
  3.         alert("Estás escribiendo");
  4.     },
  5.     definirProp = function(elem, prop){
  6.         element = document.createElement(elem);
  7.         for (var p in prop)
  8.             element[p] = prop[p];
  9.         return element;
  10.     },
  11.     invocar = new definirProp(obj, {
  12.         type: "text",
  13.         id: "ejemplo",
  14.         className: "classEjemplo",
  15.         value: "Valor de ejemplo",
  16.         onkeypress: fn
  17.     });
  18.  
  19. document.body.appendChild(invocar);

Ya luego sería cuestión de agregar validaciones para que el nombre del elemento a crear sea válido.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand