Greasemonkey-script om rijen met bepaalde voorwaarden te vinden

Ik heb op verschillende manieren geprobeerd om rijen te vinden in een tabel waarin een kolom een ​​bepaalde link bevat.

Mijn doel: een pictogram vervangen wanneer een link naar xyz in dezelfde rij staat als de afbeelding.

Dit is mijn fragment tot nu toe:

var rows = document.getElementsByTagName("tr");
for(var i = rows.length - 1; i >= 0; i--) {     
        var links = rows[i].getElementsByTagName("a");
        for(var k = links.length - k; k >= 0; k--) {
            if (links[k].href =="http://www.XXXX.net/forum/index.php?showforum=121"){
                var images = rows[i].getElementsByTagName("img");
                    for (var j=0;j

Ik ben er vrij zeker van dat dit niet echt het beste concept is. Maar zoals je misschien ziet, probeer ik links in alle rijen te zoeken en zodra de link naar forum "121" is gevonden, probeer ik alle afbeeldingen in deze rij te vervangen.

Wat ik krijg is dat elke afbeelding op de site wordt vervangen.

3

1 antwoord

Omdat het eenvoudig genoeg is, hier is een volledig script dat dat doet.
Het gebruikt jQuery en dit is een handige jQuery-referentie . Zie vooral de sectie Selectors (die bijna hetzelfde zijn als CSS Selectors).

Re: "Wat ik krijg is dat elke afbeelding op de site wordt vervangen." ...

Dit komt misschien omdat de zoekcriteria te breed zijn. Als het een slecht ontworpen pagina is (maakt gebruik van de tabellay-outs), kan elke afbeelding zich in een tabelrij bevinden met een doellink!

Bij het plaatsen van Greasemonkey-vragen, een link naar de doelpagina , of op zijn minst, plaats genoeg van de HTML van de pagina dat we het GM-script kunnen aanpassen.


Hoe dan ook, dit zal werken, mogelijk in afwachting van meer informatie over de doelpagina:

// ==UserScript==
// @name     _Replace image on custom-targeted row
// @include  http://www.XXXX.net/forum/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
// ==/UserScript==

//--- This may need tuning based on information not provided!
var targetLinks = $("tr a[href*='showforum=121']");

//--- Loop through the links and rewrite images that are in the same row.
targetLinks.each ( function() {
    //--- This next assumes that the link is a direct child of tr > td.
    var thisRow = $(this).parent ().parent ();

    //--- This may need tuning based on information not provided!
    var images  = thisRow.find ("td img");

    //--- Replace all target images in the current row.
    images.each ( function() {
        $(this).attr (  
            'src', 
            'http://www.XXXX.net/forum/folder_post_icons/icon7.gif'
        );
    } );
} );
2
toegevoegd
Bedankt, het forumgedeelte waar ik het voor heb gemaakt is verborgen maar de volgende keer probeer ik wat meer details over de site te geven. Ik moest de code een beetje verlengen :)
toegevoegd de auteur Pickaxe, de bron