Frage

Ich habe ein wenig Schwierigkeiten, eine Variable in einen Selektor in Prototyp vorbei. Ich möchte in der Lage sein, eine Variable in die Auswahl String zu übergeben, so dass eine Funktion für viele der gleichen Art arbeiten können.

Im Moment ist das, was ich im Grunde zu tun:

function myFunct(var)
{
  $(var + 'add_form').hide()  //so inde the brackets would be ('#product1 #add_form') for example.
}

Die Lage sein, ‚var‘ in die Funktion zu übergeben, die es an die Wähler passieren würden, so dass ich ein Muster verstecken, das das gleiche für viele auf der Seite.

Alle Ideen für einen Weg würde zu folgen sehr geschätzt.

War es hilfreich?

Lösung

Sie sind auf dem richtigen Weg! Paar Dinge:

  1. var ist ein JavaScript-Schlüsselwort ( Quelle ), verwenden Sie es nicht zu Name eine Variable
  2. , wenn Sie ein Element von ID (wie #add_form) sind Abfragen Sie brauchen kein Containerelement hinzufügen, wie Sie tun
  3. Wenn Sie ein Element von class sind abfragt, müssen Sie die $$ Funktion nutzen, nicht die $ Funktion
  4. Sie müssen über den umschlossenen Satz wiederholen Ihre Methode aufrufen
  5. Leerzeichen ist in CSS-Selektoren signifikant, so stellen Sie sicher, dass die in Ihrer Wähler Konstruktion enthalten Prototype zu sagen suchen in Ihre übergeordneten Container:

    function myFunct(parent) {
      $$(parent + ' .add_form').invoke('hide')
    }
    
    myFunct('#someparent'); // hides .add_form inside #someparent
    

Andere Tipps

Das sollte funktionieren ... umbenennen nur var auf etwas anderes.

function myFunct(yourVar)
{

  $$('#' + yourVar + ' .add_form').each(function(s){ s.hide(); });  // yourVar being the id of the container element

}

Ich habe eine setzen ‚‘ vor add_form weil Sie mehrere Elemente mit gleicher ID nicht verwenden können, macht es eine Klasse.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top