0
votes

Accrocher les méthodes jQuery aux éléments sélectionnés par JavaScript

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.


1 commentaires

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


3 Réponses :


1
votes

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


0 commentaires

1
votes

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.


0 commentaires

0
votes

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 .


0 commentaires