Frage

Ich habe zwei Elemente:

<input a>
<input b onclick="...">

Wenn b geklickt wird, möchte ich den Zugriff auf ein und manipulieren Sie einige seiner Daten.Eine nicht haben eine weltweit eindeutige Namen, so-Dokument.getElementsByName ist aus.Der Blick in die event-Objekts, dachte ich, event.Ziel.parentNode würde eine Funktion zu haben wie getElementsByName, aber dies scheint nicht der Fall zu sein mit <td>en.Gibt es eine einfache Möglichkeit, dies zu tun?

War es hilfreich?

Lösung

Wenn a und b sind neben einander und haben die gleichen Eltern, Sie verwenden können die prevSibling Eigenschaft b zu finden a.

Andere Tipps

  1. Sie sollten in der Lage sein zu finden, das element, auf das geklickt wurde von der event-Objekt.Abhängig von Ihrem browser, möchten Sie vielleicht e.target oder e.srcElement.Der folgende code stammt aus diesem w3schools Beispiel:

    function whichElement(e) {
      var targ;
      if (!e) var e = window.event;
      if (e.target) {
        targ=e.target;
      } else if (e.srcElement) {
        targ = e.srcElement;
      }
    
      if (targ.nodeType==3) { // defeat Safari bug 
        targ = targ.parentNode;
      }
    
      var tname;
      tname = targ.tagName;
      alert("You clicked on a " + tname + " element.");
    }
    
  2. Sie können dann die nextSibling und prevSibling DOM-traversal-Funktionen. Einige mehr Informationen hier.Und doch wieder eine Referenz für w3schools XML-DOM-Knoten.

Prototyp auch hat nette Funktionen zu bewegen, in den DOM.In Ihrem Beispiel so etwas wie das folgende würde den trick tun:

b.up().down('a')

Und wenn es ist mehr als ein ein element auf dieser Ebene haben Sie die macht von CSS-Selektoren zu Ihrer hand, um Sie genau festlegen, welches element Sie wollen

Lassen Sie Ihre plain-vanilla-JavaScript-hinter.Get JQuery-es wird Sie sparen eine Menge Zeit.

http://docs.jquery.com/Selectors

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