TypeError: MeineLinks[i].search is not a function debugger eval code:1:218

  • Guten Abend zusammen,

    mein Script, soll alle links durchgehen, wenn ein link, das Wort "abmelden" enthält, dann soll es auf diesen link geklickt werden.

    Dazu habe ich mir folgenden Code geschrieben, wenn ich die in Firefox Konsole eingeben, bekomme die Fehlermeldung: TypeError: MeineLinks[i].search is not a function debugger eval code:1:218




    Mache ich da was falsch oder wird das, so wie ich es mir vorstelle nicht funktionieren.?

    vielen Dank, schon mal im Voraus.


    Code
    1. var raus = "abmelden"
    2. var MeineLinks = document.links; 
    3. for (var i = 0; i < MeineLinks.length; i++ ) {
    4. var treffer = MeineLinks[i].search(raus); 
    5. if (treffer >= 0){
    6. MeineLinks[i].click();
    7. break;
    8. };
    9. };
  • Ok, vielen Dank!

    Nun, so richtig Ahnung von der Sache habe ich nicht,

    Wenn search für Strings ist und MeineLinks[i] ein Array(?) ist, muss ich dann die Funktion find() nutzen?

    Aber mit mit find() funktioniert auch nicht.


    Wenn ich so mache:

    var myStr = MeineLinks[i]; var treffer = myStr.search(raus); 

    ist es jetzt ein String? Entschuldigte, falls meine annahmen kein Sinn ergeben.

  • Wenn ich so mache:

    JavaScript
    1. var myStr = MeineLinks[i]; var treffer = myStr.search(raus); 

    ist es jetzt ein String?

    Nö. Ist ja nichts anderes als du zuvor benutzt hast:

    JavaScript
    1. var treffer = MeineLinks[i].search(raus);
    2. // IST GLEICH WIE:
    3. var treffer = myStr(MeineLinks[i]).search(raus);



    Links mit "abmelden", wird es wohl nicht viele geben. Da ist es besser, denen eine Klasse zuzuweisen, anstatt alle Links auf der Seite abzuklappern.

    Aber um jetzt zurück zu deiner Frage zu kommen, einen brauchbaren String bekommst du z.B. mit dem Inhalt der Links:

    JavaScript
    1. MeineLinks[i].innerHTML

    Weiter kannst du dann wie bereits gemacht mit search arbeiten.

    Da ich aber davon ausgehe, das die betroffenen Links auch nur ein "abmelden" als Inhalt haben, wäre eine Suche hier unnötig:

    JavaScript
    1. // Also NICHT...
    2. if(MeineLinks[i].innerHTML.search(raus) != -1)
    3. // ... sondern
    4. if(MeineLinks[i].innerHTML == "abmelden")