0
votes

Existe-t-il une possibilité de récupérer le contenu html avec les attributs et méthodes comme onChange, onClick

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?


2 commentaires

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 Afficher les méthodes attachées avec Say element.onchange = fonction () {};


3 Réponses :


0
votes

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.


2 commentaires

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 ^



0
votes

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')


8 commentaires

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?



0
votes

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);
    }


0 commentaires