Je suis en train de trouver un moyen qui va ajouter / mettre à jour d’attribut à l’aide de javascript. Je sais que je peux le faire avec la fonction SetAttribute, mais cela ne fonctionne pas dans Internet Explorer.
Réponses
Trop de publicités?Ce qui semble facile, c'est effectivement difficile si vous voulez être complètement compatible.
var e = document.createElement('div');
Disons que vous avez un id de 'div1' ajouter.
e['id'] = 'div1';
e.id = 'div1';
e.attributes['id'] = 'div1';
e.createAttribute('id','div1')
Ce seront tous les travaux à l'exception de la dernière dans IE 5.5 (qui est l'ancienne histoire à ce point, mais est toujours XP par défaut avec pas de mises à jour).
Mais il y a des imprévus, bien sûr.
Ne fonctionne pas dans IE avant 8:e.attributes['style']
Ne sera pas d'erreur, mais ne pas la classe, il faut className:e['class']
.
Toutefois, si vous utilisez des attributs de ce travail:e.attributes['class']
En résumé, pensez attributs comme littéral et orienté objet.
Dans le sens littéral, vous avez juste envie de cracher x='y' et ne pas y penser. C'est ce que les attributs, les setAttribute createAttribute (sauf pour IE style de l'exception). Mais parce que ce sont vraiment des objets de choses peuvent se confondre.
Puisque vous allez à la peine de bien la création d'un élément du DOM au lieu de jQuery innerHTML la pâtée, je voudrais le traiter comme un et le bâton avec l'e.className = 'fooClass' et e.id = 'fooID'. C'est une conception de préférence, mais dans ce cas, essayer de traiter est autre chose qu'un objet travaille contre vous.
Il ne sera jamais se retourner contre vous, comme les autres méthodes, juste être conscient de la classe nom de la classe et le style d'un objet de style.largeur de pas style="width:50px". Rappelez-vous aussi tagName mais c'est déjà définie par createElement de sorte que vous ne devriez pas besoin de s'inquiéter à ce sujet.
Ce fut plus long que ce que je voulais, mais CSS manipulation en JS est un travail délicat.
Obligatoire de solution de jQuery. Trouve et il affecte les attribuent à
. Notez que cela sélectionne un élément unique puisque je le fais par id, mais vous pouvez facilement définir le même attribut sur une collection de changer le sélecteur.
Que voulez-vous faire avec l’attribut ? Est-ce un attribut html ou quelque chose de vous-même ?
La plupart du temps vous pouvez simplement résoudre en tant que propriété : pour définir un titre sur un élément ? ``va le faire.
Pour votre propre personnalisé JS attribue le DOM est naturellement extensible (aka expando = true), le résultat simple qui est que vous pouvez faire `` et ensuite le lire sans problème.