Différence entre innerHTML et .html () de jQuery
Quelqu'un peut-il dire quelle est la différence entre jquery .html() et la fonction innerHTML?
<script type="text/javascript">
$(document).ready(function(){
$('#test_link').click(function(){
//$('#div_test_out').html("<div width='250px' height='100px' id='div_test'><script language='javascript'>alert('insider');<\/script>asddsa</div>");
document.getElementById('div_test_out').innerHTML="<div width='250px' height='100px' id='div_test'><script language='javascript'>alert('insider');<\/script>asddsa</div>";
});
});
</script>
<a href="#" id="test_link" >TEST LINK :-)</a><br/><br/>
<div width="100px" height="100px" id="div_test_out"></div>
Lorsque j'utilise la première option, c'est-à jQuery, script s'exécute, et d'alerte s'affiche, mais si j'utilise la deuxième option que avec le innerHTML (qui je pense est le même et il n'y a pas de différence entre eux), le script ne marche pas ;-(
Ce qui pourrait être la cause?
source d'informationauteur kuba
Vous devez vous connecter pour publier un commentaire.
de jQuery .html() est une méthode polyvalente de fonction pour accéder et manipuler des innerHTML. Lorsqu'il est utilisé comme un setter, il renvoie le jQuery collection de chaînage. Lorsqu'il est utilisé comme un fonceur, il renvoie le balisage de la représentation des éléments de la collection' les entrailles.
Lorsque vous l'utilisez comme un setter--à écrire des balises en un élément--jQuery lit le balisage et d'extraits de scripts à partir de l'intérieur. Il ajoute ensuite à la DOM séparément dans une manière qui provoque leur exécution. .html() implicitement provoque quelques opérations (gestion de scripts étant l'un) alors que l'écriture de innerHTML simplement provoque le innerHTML de changer, mais très peu est fait avec HTML.
Réglage de la
innerHTML
bien ne pas exécuter les scripts.jQuery contient un code spécial pour exécuter des scripts pour vous.
Je pense que c'est la bonne manière:
Pourquoi vous insérez java script alerte à la div?