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 originalvar input = document.createElement("input"),
fn = function(){
alert("Estás escribiendo");
},
definirProp = function(elem, prop){
for (var p in prop)
elem[p] = prop[p];
return elem;
},
invocar = new definirProp(input, {
type: "text",
id: "ejemplo",
className: "classEjemplo",
value: "Valor de ejemplo",
onkeypress: fn
});
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 originalvar obj = prompt("Ingrese el elemento a crear"),
fn = function(){
alert("Estás escribiendo");
},
definirProp = function(elem, prop){
element = document.createElement(elem);
for (var p in prop)
element[p] = prop[p];
return element;
},
invocar = new definirProp(obj, {
type: "text",
id: "ejemplo",
className: "classEjemplo",
value: "Valor de ejemplo",
onkeypress: fn
});
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