Comment modifier le texte d'un lien en fonction de différents termes de l'attribut de titre du lien?

Dans ma page de football Fantasy, il donne des statistiques sur l'équipe adverse et, lorsque vous passez la souris, vous indique combien de points elles abandonnent (voir l'image).

Voici le code pertinent relatif à ceci:

<a class="Inline F-rank-good" title="WAS gives up the 3rd most fantasy points to the QB position." target="_blank" href="/f1/777400/pointsagainst?pos=QB&ntid=28">Was</a> 

Comment puis-je créer un script Greasemonkey qui ajoutera le # à la fin du nom de l'équipe (c.-à-d. "Was" devient "Was-3"

Un problème, c'est que, parfois, le rang dit qu'il abandonne le «2e plus petit point», auquel cas il faudrait faire 32-2 pour obtenir le rang absolu.

Lien montrant la souris

Extrayez le numéro de l'attribut title , en utilisant regex qui bascule en fonction du texte environnant.

Le script Greasemonkey, complet mais non testé, illustre le processus:

 // ==UserScript== // @name FF, stat delinker // @include http://YOUR_SERVER.COM/YOUR_PATH/* // @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js // @require https://gist.github.com/raw/2625891/waitForKeyElements.js // @grant GM_addStyle // ==/UserScript== /*- The @grant directive is needed to work around a design change introduced in GM 1.0. It restores the sandbox. */ waitForKeyElements ("a.Inline", delinkChangeStat); function delinkChangeStat (jNode) { var rawText = jNode.attr ("title") || ""; var deltaText = ""; var mtchResult = null; //-- IMPORTANT: the single =, in the if() statements, is deliberate. //-- Like "gives up the 3rd most" if (mtchResult = rawText.match (/gives up the (\d+)[at]{2} most/i) ) { deltaText = mtchResult[1]; } //-- Like "gives up the 2nd fewest points" else if (mtchResult = rawText.match (/gives up the (\d+)[at]{2} fewest/i) ) { deltaText = 32 - parseInt (mtchResult[1], 10); } //-- ADD ADDITIONAL else if() CLAUSES HERE AS NEEDED. //-- Change the link if (deltaText) { jNode.text (jNode.text () + " - " + deltaText); } }