Comment puis-je réimplémenter du code jQuery contextuel externe dans Prototype?
-
01-07-2019 - |
Question
J'ai ce code dans jQuery, que je veux réimplémenter avec la bibliothèque de prototypes.
// make external links open in popups
// this will apply a window.open() behaviour to all anchor links
// the not() functions filter iteratively filter out http://www.foo.com
// and http://foo.com so they don't trigger off the pop-ups
jQuery("a[href='http://']").
not("a[href^='http://www.foo.com']").
not("a[href^='http://foo.com']").
addClass('external');
jQuery("a.external").
not('a[rel="lightbox"]').click( function() {
window.open( jQuery(this).attr('href') );
return false;
});
Comment pouvez-vous filtrer de manière itérative une collection d'éléments à l'aide d'un équivalent aux opérateurs not () répertoriés ici dans jQuery?
La solution
Le filtrage peut être effectué à l'aide de la méthode de rejet, comme suit:
$('a').reject(function(element) { return element.getAttribute("href").match(/http:\/\/(www.|)foo.com/); }).invoke("addClassName", "external");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow