[JS] Img tags doorlopen, specifieke tags deleten

Pagina: 1
Acties:

  • Crayne
  • Registratie: Januari 2002
  • Laatst online: 17-03 13:41

Crayne

Have face, will travel

Topicstarter
Ik ben bezig om voor een forum waar ik vrij actief ben een Greasemonkey script te maken dat alle smileys van dat forum van de pagina verwijdert. Ik heb het op het moment draaien met:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var imgList = document.getElementsByTagName("img");
var x;

if (window.location.pathname.indexOf("showthread") != -1) {
    
    for (x = 0; x < imgList.length; x++) {

        if (imgList[x].src.indexOf("images/smilies") != -1) {
        
            imgList[x].style.display = "none";
            
        }
    
    }
    
}


Ik wil eigenlijk gewoon het hele IMG element verwijderd hebben. Het effect voor de gebruiker is natuurlijk hetzelfde (geen smileys meer in zicht), maar ik zou het liever anders aanpakken.

Deze code geeft geen errors in de error console van Firefox, maar verwijderd de smileys ook niet:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var imgList = document.getElementsByTagName("img");
var x;

if (window.location.pathname.indexOf("showthread") != -1) {
    
    for (x = 0; x < imgList.length; x++) {

        if (imgList[x].src.indexOf("images/smilies") != -1) {
        
            imgList[x].parentNode.removeChild(imgList[x]);
        
        }
    
    }
    
}


Ziet iemand wat hier fout gaat? Als er nou errors werden gegenereerd kon ik er nog iets mee.

Mijn Library Thing catalogus


  • Suaver
  • Registratie: Januari 2004
  • Laatst online: 19-11 14:55

Suaver

jokecoat

Children verwijderen met een for zou ik niet doen, ik zou een while gebruiker aangezien die lijst op runtime wordt aangepast.
JavaScript:
1
hasChildNodes();
Crayne schreef op vrijdag 24 november 2006 @ 12:05:
[...]
De for is om door de img elementen te loopen, niet om het element te verwijderen. Hoe gaat een while loop iets uitmaken in deze situatie?
Ah idd stom, het gaat er iig om dat je forloop doorgaat terwijl die lijst kleiner wordt, aldus die error.

[ Voor 57% gewijzigd door Suaver op 24-11-2006 12:07 ]

You, me, us, together, me, us, you, we, us, you, me... DONE.


  • Crayne
  • Registratie: Januari 2002
  • Laatst online: 17-03 13:41

Crayne

Have face, will travel

Topicstarter
Suaver schreef op vrijdag 24 november 2006 @ 12:03:
Children verwijderen met een for zou ik niet doen, ik zou een while gebruiker aangezien die lijst op runtime wordt aangepast.
JavaScript:
1
hasChildNodes();
De for is om door de img elementen te loopen, niet om het element te verwijderen. Hoe gaat een while loop iets uitmaken in deze situatie?

Mijn Library Thing catalogus


  • Crayne
  • Registratie: Januari 2002
  • Laatst online: 17-03 13:41

Crayne

Have face, will travel

Topicstarter
Ik heb er een while loop van gemaakt, maar hij verwijdert de IMG elementen nog steeds niet (of niet allemaal). Hmmm...

Overigens:
Suaver schreef op vrijdag 24 november 2006 @ 12:03:
Ah idd stom, het gaat er iig om dat je forloop doorgaat terwijl die lijst kleiner wordt, aldus die error.
Welke error? :?

[ Voor 51% gewijzigd door Crayne op 24-11-2006 12:13 ]

Mijn Library Thing catalogus


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:36

crisp

Devver

Pixelated

achteraan beginnen:
JavaScript:
1
2
3
4
5
6
7
8
9
if (window.location.pathname.indexOf('showthread') != -1)
{
    var imgList = document.getElementsByTagName('img'), x = imgList.length;
    while (x--)
    {
        if (imgList[x].src.indexOf('images/smilies') != -1)
            imgList[x].parentNode.removeChild(imgList[x]);
    }
}

Intentionally left blank


  • Crayne
  • Registratie: Januari 2002
  • Laatst online: 17-03 13:41

Crayne

Have face, will travel

Topicstarter
D'OH!

Inderdaad, daar zat de kneep. :)

Bedankt Suaver en crisp...

Mijn Library Thing catalogus

Pagina: 1