JQuery obtient le contenu de span
Je suis en train de récupérer le contenu d'une plage quand un bouton est cliqué. C'est le html:
<div class="multiple-result">
<button class="select-location" id="168">Select</button>
<span>Athens, Greece</span>
</div>
<div class="multiple-result">
<button class="select-location" id="102">Select</button>
<span>Athens, Georgia, USA</span>
</div>
Que j'essaie de faire en sorte que lorsque le bouton est cliqué, il obtiendra la valeur de l'étendue de mesure. C'est ce que j'utilise:
$('button.select-location').live('click', function(event){
//set the span value
var span_val = $(this).parent("span").html();
alert('selecting...' + span_val);
});
Mais l'alerte est toujours présente: la sélection de... nulle
source d'informationauteur Frank
Vous devez vous connecter pour publier un commentaire.
Vous voulez obtenir les parents d'abord, puis de trouver la durée:
Edit: Jamais revenir en arrière et de regarder le code que vous avez écrit il y a 2 ans et gémissement, "Pourquoi ai-je fais que?". Le code ci-dessus est maladroit. Au lieu de
.find("> span")
je devrais avoir utilisé.children("span")
.Mais, qu'est ce qu'un enfant de vos parents? Un frère ou une sœur! Ainsi, au lieu de
.parent().children("span")
je devrais avoir utilisé.siblings("span")
.Mais, en regardant le code HTML, nous n'avons même pas besoin de creuser à travers les frères et sœurs, nous savons qu'il est le frère suivant:
ou tout simplement:
En ce point, nous sommes à peine à l'aide de jQuery. Nous pourrait il suffit de dire:
Mais, peut-être que maintenant, je l'ai fait basculer le balancier trop loin dans l'autre sens?
C'est pas le bouton du parent.
div
estbutton
parent etspan
est les enfants de ladiv
. Essayezà la place.
Travail de démonstration
La durée n'est pas un parent de l' '.sélectionnez-emplacement du bouton, mais le div de l'est (dont la durée est dans). À l'aide de votre balisage, essayez quelque chose comme ceci:
Ici est un Jsfiddler de démonstration à l'aide de jQuery prochaine
http://jsfiddle.net/vVK54/1/
En fonction du nombre de travées vous avez, mais si la durée sera toujours directement après l', puis sur le bouton
.next('span')
fonctionne. Si vous prévoyez de placer le bouton n'importe où ailleurs dans le même div parent, alors vous aurez besoin pour naviguer dans le dom pour le trouver.Aussi, il peut être préférable d'ajouter un ciblage classe ou un attribut de la balise span cible mieux le cas où vous avez l'intention de plus en plus complexes, dom ou plusieurs travées.
Espère que cette aide