En utilisant des méthodes comme $ ("# id"). html ()
ne peut saisir que du code html de base.
Mais y a-t-il un moyen de récupérer le contenu html avec les méthodes et autres choses?
3 Réponses :
Si je vous comprends bien, procédez comme suit:
var element = $("#id"); console.dir(element);
vous montrera toutes les propriétés / méthodes de l'élément.
Cela vous montrera chaque propriété / méthode jquery. Vous aurez besoin de var element = $ ("# id") [0];
pour obtenir l'élément DOM.
C'est très vrai ^
En gros, une fois que vous avez une référence à $ ("# id"). html ()
, vous pouvez accéder à toutes les propriétés requises via . attr ou .prop
EDIT:
comme vous l'avez dit, vous devez obtenir tout l'élément sous forme de texte:
$('#id').clone().prop('outerHTML')
En fait, je suis dans une situation pour saisir tout le contenu html et le placer dans un nouveau fichier.
Les méthodes de ces éléments html sont déjà écrites dans le fichier js qui y est lié.
Ainsi, lorsque je place le contenu html, les méthodes ci-jointes sont supprimées.
@Taplar Oui, ce serait probablement la meilleure pratique, a édité la réponse.
merci mais il donne le même résultat que la méthode html ()
@Eswara nadh êtes-vous sûr? .html () et .prop ('externalHTML') font des choses différentes
Oui, les deux donnent le même contenu HTML sans attributs ni méthodes
pouvez-vous modifier l'article et ajouter votre arbre HTML pertinent?
Oui, vous pouvez copier des données html avec l'appel de la fonction onclick
utilisez jquery clone ()
function
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <html> <body> <div class="foo"> <h2 onclick="test()">Click here to copy data</h2> </div> <div class="test"></div> </body> </html>
function test(){ var data = $(".foo").clone(); $(".test").html(data); }
Je suppose que cela dépend entièrement de la manière dont les événements sont liés. Si les événements ont été créés en utilisant les attributs html en ligne, ou peut-être même en utilisant les propriétés DOM pour les attributs, obtenir le html de l'élément que je suppose montrerait les attributs définis sur eux.
Bien que les tests, il ne montre pas b> Afficher les méthodes attachées avec Say
element.onchange = fonction () {}; code>