Plus facile à expliquer avec un code simple:
$ ("# élément"). fadeOut (); // jQuery; fonctionne comme prévu
Je veux utiliser .fadeOut () et sélectionner un élément avec JS comme ceci:
document.getElementById ("élément"). fadeOut (); // Ne fonctionne pas
Comment puis-je faire en sorte que cela fonctionne et y a-t-il un intérêt à le faire (en termes de performances)?
Toute réflexion est appréciée. Merci.
3 Réponses :
Vous pouvez envelopper l'élément dans $():
$('#element').fadeOut();
Cependant, vous trouverez peut-être plus simple d'utiliser simplement le sélecteur d'identifiant jQuery # :
$(document.getElementById("element")).fadeOut();
Vous pouvez attribuer le nom de propriété fadeOut à HTMLElement.prototype , et appeler le fadeOut de jQuery depuis l'intérieur:
p >
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="element">text</div>
// $("#element").fadeOut(); // jQuery; works as expected
HTMLElement.prototype.fadeOut = function(...args) {
$(this).fadeOut(...args);
}
document.getElementById('element').fadeOut();
Cela dit, écraser des objets intégrés tels que HTMLElement est une très mauvaise pratique et peut causer des problèmes - il serait préférable de faire ce que vous faisiez à l'origine et d'appeler .fadeOut sur un objet jQuery contenant le ou les éléments souhaités.
Si vous souhaitez utiliser les fonctionnalités de JQuery, vous devez utiliser $ () pour appeler la méthode, c'est-à-dire fadeout () . Voir JQuery Selector .
Maintenant que si vous voulez le faire en JavaScript vanille, vérifiez ceci .
Les méthodes jQuery attendent un objet jQuery pour fonctionner. Par exemple.
$ ()Pour en savoir plus, cliquez ici stackoverflow.com/questions/6445180/what-is-a-jquery-object