Utilisation de JQuery, est-il possible de changer tous les éléments correspondants à un type différent? P>
Par exemple, puis-je sélectionner tous les balises A code>, $ ("a") code> et les modifier vers entrée code> S? p>
4 Réponses :
Non, vous ne pouvez pas le changer réellement, mais vous pouvez les remplacer par un nouvel élément à l'aide du < Code> replacewith () code> Méthode: S'il y a des attributs que vous souhaitez conserver, vous devez les définir manuellement: P>
Tout irait bien, mais il va devoir copier sur les attributs lui-même. Pas que c'est une mauvaise chose ...
Est-ce que cela conserve la teneur en HTML interne des balises remplacées?
@esqew: Non, mais un code> de l'entrée? Je vais mettre à jour.
$("a").each( function() {
this.replaceWith( $("<input>").html( this.innerHTML() ) );
});
On dirait que tu es un peu deviner des choses. Juste quelques astuces, this.replacevith (... code> devrait être $ (this) .replacewith (... code>, $ ("<< INPUT>") .html (... code> devrait être $ (" this.innerhtml () code> devrait être this.innerhtml code>.
Un élément d'entrée n'a pas de contenu, le réglage de son innerhtml peut avoir aucun effet, ni peut lancer une erreur.
La modification d'un élément A à un élément d'entrée ne change pas le type, il modifie le tagName em>. Selon le DOM 2 Spécification de base , "Em> Tagname d'un élément EM> est réadonly, donc non, vous ne pouvez pas la définir. P>
Cependant, vous pouvez remplacer un élément par un élément différent, à condition qu'il soit valide dans le DOM. P>
Je n'ai pas essayé cela, mais ma supposition serait non. Sauf si vous voulez les modifier en les supprimant du DOM et en ajoutant de nouveaux éléments à leur place, ce qui devrait être possible.
@Brad - peut-être créer des hyperliens modifiables en ligne?
@Aroth, ah, cela aurait un sens.
@Brad - et pour les utilisateursComments