Linuchs: Uncaught TypeError: arr_ausgewaehlte_audios.splice is not a function

Moin,

auf einer Webseite gibt es mehrere audio-tags. Die mit class=nogroup sollen aus dem array gelöscht werden. Was ist an dem splice falsch?

arr_ausgewaehlte_audios = document.querySelectorAll( "audio" );
for ( let i=0; i < arr_ausgewaehlte_audios.length; i++ ) {
  if( arr_ausgewaehlte_audios[i].className == "nogroup" ) {
    alert( "Audio " +i +" entfernen" );
    arr_ausgewaehlte_audios.splice( i, 1 );
  }
  arr_ausgewaehlte_audios[i].volume = 0.2;
}

Ich entferne audio[0], ist dann die bisherige 1 jetzt 0 und muss ich in der for-Schleife i-- machen?

Hätte ich selbst ausprobiert, aber splice zickt.

Gruß, Linuchs

  1. Hi,

    auf einer Webseite gibt es mehrere audio-tags. Die mit class=nogroup sollen aus dem array gelöscht werden. Was ist an dem splice falsch?

    es ist auf Nodelist (welches querySelectorAll zurückgibt) schlicht nicht existent.

    cu,
    Andreas a/k/a MudGuard

    1. danke, jetzt sieht es so aus:

      arr_ausgewaehlte_audios = Array.from( document.querySelectorAll( "audio" )); // array wg. slice kann keine NodeList
      console.log( "lied_mehrspurig.js  " +arr_ausgewaehlte_audios.length +" audios" );
      for ( let i=0; i < arr_ausgewaehlte_audios.length; i++ ) {
        if( arr_ausgewaehlte_audios[i].className == "nogroup" ) {   // .nogroup nicht auswaehlen - tonikum you_took_the_words
          alert( "Audio " +i +" entfernen [" +arr_ausgewaehlte_audios[i].source +"]" );
          arr_ausgewaehlte_audios.splice( i, 1 );
        }
        arr_ausgewaehlte_audios[i].volume = 0.2;
      }
      

      Kann man bei querySelectorAll Elemente ausschließen, sowas wie

      arr_ausgewaehlte_audios = Array.from( document.querySelectorAll( "audio", !".nogroup" ));
      
      1. Hi,

        Kann man bei querySelectorAll Elemente ausschließen

        das erwartet einen CSS-Selektor.

        not existiert auch in CSS.

        cu,
        Andreas a/k/a MudGuard

        1. wie ist die Symtax? Nahezu alles versucht, entweder auf Fehler gelaufen oder 6 Elemente erkannt. 5 ist richtig, ein audio hat class=nogroup

          //arr_ausgewaehlte_audios = document.querySelectorAll( "audio" not ".nogroup" );
          //arr_ausgewaehlte_audios = document.querySelectorAll( "audio", not ".nogroup" );
          //arr_ausgewaehlte_audios = document.querySelectorAll( "audio", "not .nogroup" );
            arr_ausgewaehlte_audios = document.querySelectorAll( "audio" and not[".nogroup"] );
          //arr_ausgewaehlte_audios = document.querySelectorAll( "audio", "not[.nogroup]" );
          //arr_ausgewaehlte_audios = document.querySelectorAll( "audio" and not ".nogroup" );
          //arr_ausgewaehlte_audios = document.querySelectorAll( "audio", and not ".nogroup" );
            console.log( "lied_mehrspurig.js  " +arr_ausgewaehlte_audios.length +" audios" );
          
            1. So funktioniert es:

              arr_ausgewaehlte_audios = document.querySelectorAll( "audio:not(.nogroup)" );
              
          1. Hallo Linuchs,

            wie ist die Symtax?

            //arr_ausgewaehlte_audios = document.querySelectorAll( "audio" not ".nogroup" );
            //arr_ausgewaehlte_audios = document.querySelectorAll( "audio", not ".nogroup" );
            //arr_ausgewaehlte_audios = document.querySelectorAll( "audio", "not .nogroup" );
              arr_ausgewaehlte_audios = document.querySelectorAll( "audio" and not[".nogroup"] );
            //arr_ausgewaehlte_audios = document.querySelectorAll( "audio", "not[.nogroup]" );
            //arr_ausgewaehlte_audios = document.querySelectorAll( "audio" and not ".nogroup" );
            //arr_ausgewaehlte_audios = document.querySelectorAll( "audio", and not ".nogroup" );
              console.log( "lied_mehrspurig.js  " +arr_ausgewaehlte_audios.length +" audios" );
            

            logisch denken, nicht einfach wild rumprobieren oder gar Rum probieren!
            Die Funktion querySelectorAll() erwartet genau ein Argument. Einen String. Und dieser String muss ein gültiger CSS-Selektor sein. Also sind alle deine planlosen Versuche schon formalsyntaktisch falsch.

            Logisch denken: Wie würdest du den Selektor in reinem CSS formulieren?

            Einen schönen Tag noch
             Martin

            --
            Wer kennt ein schönes Autofahrer-Märchen? - Radkäppchen und der böse Golf
            1. oder gar Rum probieren!

              Mir war zum Heulen, da greift man schon mal zur Wein-Flasche.

              Das not ist heute meine Premiere, noch nie (bewusst) angewendet.

              Als blindes Huhn hab ich 'n Korn gefunden. Prost!

              1. Hallo,

                Mir war zum Heulen, da greift man schon mal zur Wein-Flasche.

                Als blindes Huhn hab ich 'n Korn gefunden. Prost!

                naja, flüssig ist so ziemlich die einzige Form, in der Kümmel genießbar ist.

                Btw: Es wird immer wieder behauptet, Kümmel wirke entblähend. Tatsächlich mache ich immer wieder die umgekehrte Erfahrung: Kümmel, z.B. im Brot oder im Salat, verursacht eher Blähungen. Und zwar von der übelriechenden Sorte.

                Einen schönen Tag noch
                 Martin

                --
                Wer kennt ein schönes Autofahrer-Märchen? - Radkäppchen und der böse Golf
          2. Hi,

            wie ist die Symtax? Nahezu alles versucht, entweder auf Fehler gelaufen oder 6 Elemente erkannt. 5 ist richtig, ein audio hat class=nogroup

            Wie heißt es so schön:

            5 Stunden planloses Raten erspart 10 Minuten Handbuchlesen …

            cu,
            Andreas a/k/a MudGuard

            1. @@MudGuard

              Wie heißt es so schön:

              5 Stunden planloses Raten erspart 10 Minuten Handbuchlesen …

              Die Inflation schreitet voran. 2006 waren es noch 2 Stunden.

              🖖 Живіть довго і процвітайте

              --
              „Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“
              — @Grantscheam auf Twitter
            2. Einen schönen 2. Advent euch allen! (Bei uns ist alles ein bisschen weiß)

              Im heutigen Adventskalender geht's um das Ansprechen von einzelnen und mehreren Elementen einer Webseite.

              5 Stunden planloses Raten erspart 10 Minuten Handbuchlesen …

              Da sprichst du ein großes Wort gelassen aus!

              Herzliche Grüße

              Matthias Scharwies

              --
              Eigentlich hatte ich heute viel vor - jetzt habe ich morgen viel vor!
              1. @@Matthias Scharwies

                Kann man … an dem 🎄 Baum noch eine Kugel ein alt-Attribut ans img-Element hängen? Das wird gern vergessen.

                🖖 Живіть довго і процвітайте

                --
                „Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“
                — @Grantscheam auf Twitter
                1. Servus!

                  @@Matthias Scharwies

                  Kann man … an dem 🎄 Baum noch eine Kugel ein alt-Attribut ans img-Element hängen? Das wird gern vergessen.

                  Screenshot

                  War doch schon dran!?

                  Herzliche Grüße

                  Matthias Scharwies

                  --
                  Eigentlich hatte ich heute viel vor - jetzt habe ich morgen viel vor!
                  1. @@Matthias Scharwies

                    Kann man … an dem 🎄 Baum noch eine Kugel ein alt-Attribut ans img-Element hängen? Das wird gern vergessen.

                    War doch schon dran!?

                    Nein.

                    Teil des Baums mit p-Element, an dem ein img-Element mit src-Attribut hängt; kein alt-Attribut

                    🖖 Живіть довго і процвітайте

                    --
                    „Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“
                    — @Grantscheam auf Twitter
                    1. Servus!

                      @@Matthias Scharwies

                      Kann man … an dem 🎄 Baum noch eine Kugel ein alt-Attribut ans img-Element hängen? Das wird gern vergessen.

                      War doch schon dran!?

                      Nein.

                      Teil des Baums mit p-Element, an dem ein img-Element mit src-Attribut hängt; kein alt-Attribut

                      Ah - jetzt verstehen!

                      Wird gemacht!

                      🖖 Живіть довго і процвітайте

                      Herzliche Grüße

                      Matthias Scharwies

                      --
                      Eigentlich hatte ich heute viel vor - jetzt habe ich morgen viel vor!
                      1. @@Matthias Scharwies

                        Ah - jetzt verstehen!

                        🙂

                        Wird gemacht!

                        Bei Gelegenheit auch gleich noch ein lang-Attribut ans html-Element. Auch das ist ja quasi Pflicht.

                        🖖 Живіть довго і процвітайте

                        --
                        „Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“
                        — @Grantscheam auf Twitter