La prochaine version de la librairie Javascript Prototype comprendra un module de création d’objets DOM. On pourra donc créer un élément comme ceci:
var form = new Element('form', {
action: "/user/create",
method': "post"
});
Et cela produira:
<form action="/user/create" method="post">
C’est beaucoup plus pratique et rapide que d’utiliser consécutivement les méthodes createElement puis setAttribute.
Le seul désavantage est qu’il crée du HTML et ne génère donc pas de vrais objets DOM. Mise-à-jour: Country confirme dans les commentaires que Prototype crée bel et bien des objets DOM, et non du code HTML.
À quand la même chose dans jQuery?
A noter que la dernière version de Mootools (la 1.1) intègre exactement la même fonction.
Par contre je ne vois pas ce que tu appelles de « faux » objets DOM, après avoir jeté un oeil dans le code, ils génèrent bien des objets DOM tout ce qu’il y a de plus normal (sauf pour IE où ils ont dû appliquer un « hack » à cause de certains bugs).
Country (14 mai 2007 à 9:00 EST)
À voir l’exemple donné sur le blogue de Prototype — donc, sans l’avoir essayé par moi-même — j’en étais venue à la conclusion que le code généré était une chaîne de caractères que l’on pouvait ensuite insérer dans un autre élément DOM à l’aide de la propriété
innerHTML.Tu me confirmes donc qu’il s’agit bien d’élément DOM et non de code HTML?
Rémi Prévost (14 mai 2007 à 10:21 EST)
Oui je confirme, tu peux jeter un oeil à leur code (ligne 49 et 51 ils utilisent bien
createElement, etsetAttributeplus loin).Le plus simple pour s’en rendre compte est encore de faire un alert() ou un console.log() de ce que retourne la fonction ;)
Country (14 mai 2007 à 10:45 EST)