2013-05-25 4 views
2

Je suis juste curieux, comment puis-je appeler une fonction personnalisée après document.getElementById()? Quelque chose comme ceci:Comment ajouter une fonction personnalisée à appeler après document.getElementById?

document.getElementById("element").mycustomfunction(); 
+0

Vous pourriez ** ajouter ** une fonction au prototype d'Element mais vous ne devriez pas. Pourquoi ne pouvez-vous pas simplement passer l'élément en tant qu'argument à votre fonction personnalisée? –

+0

Cela dépend de ce que 'mycustomfunction()' est – samayo

+0

@dystroy Je peux le faire, et je sais comment, je suis juste curieux de savoir comment je pourrais faire ce qui est demandé. – Zachrip

Répondre

3

Techniquement, vous pouvez le faire:

Element.prototype.mycustomfunction = function() { 
    console.log("I don't work on IE7"); 
}; 

Vous pouvez tester facilement dans votre console sur cette page: saisissez-le d'abord, puis document.getElementById("notify-container").mycustomfunction();.

Cela fonctionne. Il n'y a pas de problème technique avec ça. Mais cela peut rendre un peu plus difficile pour les mainteneurs de vos applications de suivre ce qui se passe, cela peut conduire à des collisions avec d'autres plugins faisant la même chose, et cela n'ajoute pas beaucoup plus de myPlugin.doSomething(element).

+1

Et voici quelques raisons pourquoi cela ne devrait pas être fait: http://perfectionkills.com/whats-wrong-with-extending-the-dom/ – bfavaretto

+1

@bfavaretto: C'est un assez vieil article, et s'applique principalement à IE6/7. –

+0

Merci, pour la réponse, juste pour le plaisir des futures personnes qui consultent cette page qui ne veulent pas aller lire un article entier, pouvez-vous s'il vous plaît énumérer quelques raisons pour lesquelles je ** ne devrait pas ** utiliser ceci? – Zachrip

Questions connexes