J'ai ces fonctions pour créer des éléments et modifier leurs attributs. Pourriez-vous me donner un conseil sur la façon de les modifier? Je veux obtenir quelque chose comme ceci Créer ('Div', {'Id': 'Test', 'Classe ':' smth '}); strong> p> } p> s'il vous plaît help =] p> p> p>
4 Réponses :
Je recommanderais un cadre JavaScript comme JQuery. Ils ont déjà cette fonctionnalité mise en œuvre.
$("<div/>", { "class": "test", text: "Click me!", click: function(){ $(this).toggleClass("test"); } }).appendTo("body");
Je pense que, même si ce n'est pas un mauvais conseil en général, cette personne semble construire un petit cadre de la sienne, éventuellement apprendre de l'expérience.
Vous ne pouvez pas itérer via un objet comme celui-là: Notez que j'ai changé votre variable "ATTR" sur "ATTRA" afin qu'il ne cache pas la fonction "ATTR" Vous avez créé. En outre, dans votre fonction "attr", changez le test "non défini": p> être un peu plus sûr. Comparaisons avec "==" et "! =" Tentative de conversion de type, inutile si vous ne vérifiez que vérifier non défini code>. P> p>
Un mot de conseil: je préfère personnellement la manière JQuery, car vous pouvez ajouter directement les CSS et les événements à l'élément et se référer à des objets par un nom de var au lieu de l'ID, mais ... il y a des problèmes lors de l'utilisation de ce Méthode permettant de créer des éléments d'entrée, IE7 et IE8 Ne vous permettez pas de régler la propriété Type afin de vous méfier lors de la création d'un bouton, de la zone de texte, etc., par exemple, JQuery lancera une erreur "La propriété de type ne peut pas être modifiée". P >
Si le code doit être utilisé dans un navigateur avant IE9, optimisez le mieux:
0 commentaires
Vous avez assez bien mais j'ai une solution pour vous que vous devriez essayer cela fonctionnait pour moi et c'est rapide et plus facile. Pour la création d'un élément et définit la fonction d'attributs.
Comme vous l'avez mentionné: P>
Je veux obtenir quelque chose comme ça
créer ('div', {'id': "test", "classe": "smth '}); code> p> p> BlockQuote>
Voici la solution: P>
function create(ele, attrs) { //create the element with a specified string: var element = document.createElement(ele); //create a for...in loop set attributes: for (let val in attrs) { //for support in the setAttrubute() method: if (element.setAttribute) { if (element[val] in element) { element.setAttribute(val, attrs[val]); } else { element[val] = attrs[val]; } } else { element[val] = attrs[val]; } } //return the element with the set attributes: return element; }