Question

J'ai deux éléments:

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

Lorsque b est cliqué, je veux accéder à un et de manipuler certaines de ses données.A n'A pas de nom unique à l'échelle mondiale, de sorte document.getElementsByName est sorti.La recherche dans l'objet de l'événement, j'ai pensé de l'événement.cible.parentNode aurait certaines fonctions comme la getElementsByName, mais cela ne semble pas être le cas avec <td>s.Est-il un moyen simple de faire cela?

Était-ce utile?

La solution

Si a et b sont à côté les uns des autres et ont le même parent, vous pouvez utiliser le prevSibling propriété de b pour trouver a.

Autres conseils

  1. Vous devriez être capable de trouver l'élément qui a été cliqué à partir de la objet de l'événement.Selon votre navigateur, vous pourriez vouloir e.target ou e.srcElement.Le code ci-dessous est à partir de cette w3schools exemple:

    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. Vous pouvez ensuite utiliser la nextSibling et prevSibling DOM traversée de fonctions. Plus d'information ici.Et encore une fois un w3schools de référence pour Les Nœuds DOM XML.

Prototype a aussi des fonctions très pratiques pour se déplacer dans les DOM.Dans votre exemple, quelque chose comme ferait l'affaire:

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

Et si il y a plus d'un élément à ce niveau, vous avez le pouvoir de sélecteurs CSS à votre main pour indiquer exactement où l'élément que vous souhaitez

Laissez votre plain vanilla JavaScript derrière.Obtenir JQuery--il vous permettra d'économiser une tonne de temps.

http://docs.jquery.com/Selectors

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top