utilisation de JQuery pour obtenir les frères et sœurs
Que j'essaie de faire le tag ci-dessous pour saisir la valeur de la sélectionner et de le coller dans l'entrée.
<td class="ms-formbody" style="width:385px">
<input name="ctl00$PlaceHolderMain$dlFields$ctl00$txtSource" type="text" id="ctl00_PlaceHolderMain_dlFields_ctl00_txtSource" class="ms-input" />
<select name="ctl00$PlaceHolderMain$dlFields$ctl00$ddlSourceFields" id="ctl00_PlaceHolderMain_dlFields_ctl00_ddlSourceFields" class="ms-input">
<option value="Some Field Name 1">Some Field Name 1</option>
<option value="Some Field Name 2">Some Field Name 2</option>
<option value="Some Field Name 3">Some Field Name 3</option>
<option value="Some Field Name 4">Some Field Name 4</option>
</select>
<a href="javascript: appendField();">append</a>
</td>
Je n'arrive pas à comprendre comment attraper les frères et sœurs. J'ai essayé $(this).siblings("input").val()
mais qui erronées Page d'erreur 'parentNode.firstChild' is null or not an object
.
Essayé $(this).prev().prev().val()
et qui revient pas défini. Quelle est la meilleure façon de saisir ces choses?
Grâce,
David
OriginalL'auteur David Lozzi | 2011-02-18
Vous devez vous connecter pour publier un commentaire.
Votre problème provient de votre approche. L'appel d'une fonction directement ne pas faire ce que vous attendez, ce qui est d'avoir un objet jquery qui représente le <a> tag. Plutôt que d'appeler une fonction directement, vous pouvez enregistrer une fonction pour répondre à une
click
événement sur le <a>.Premier à donner votre lien un id:
Puis utilisez remplacer votre
appendField()
fonctionner avec jQuery sélectionnez qui répond àclick
Avec cette approche
$(this)
représentera votre <a>.Vous pouvez voir ce que je suis en train de parler à une plus grande profondeur à l'aide d'un javascript console de débogage (chrome a un par défaut, et vous pouvez les utiliser Firebug sur Firefox). Tentez votre fonction originale basée sur l'approche à nouveau et ajouter un
console.log($(this));
déclaration. Vous devriez le voir impression d'une DOMWindow objet. Maintenant, mettez le même journal de l'instruction dans leclick
fonction de vous et vous verrez que jQuery vous a donné un $(this) représente ce que vous pensiez.Heureux de vous avoir aidé
OriginalL'auteur Tim Bielawa
essayer:
OriginalL'auteur Darko Z
La appendfield méthode ne permet pas l'accès à l' $(this).
Voici le code qui fonctionne:
http://jsfiddle.net/NBf4d/2/
OriginalL'auteur krishna
utilisation .les enfants() ou .find()
.les enfants ne regarde que pour les enfants directs de la société mère, trouver ressemble à tous les niveaux en dessous du parent.
$('.ms-formbody').find('select').val();
OriginalL'auteur Justin808
Cela ne fonctionne que pour ces Identifiants, mais vous pouvez facilement les modifier:
OriginalL'auteur Andrew Marshall
...
OriginalL'auteur Vivek