JQuery non può attraversare elementi
-
27-10-2019 - |
Domanda
Sto cercando di selezionare .Singleanswer ma non funziona.
JQuery:
$(".answerContainer").on("click", ".editAnswer", function(e){
e.preventDefault();
answer = $(this).parent('.answerBar').closest('.singleAnswer'); //this variable doenst work
Html:
<div class='answerContainer'>
<p name='singleAnswer' class='singleAnswer'>$answer[$f]</p>
<input type='hidden' value='$answerid[$f]' class='answer_id' />
<p class='ratingBox'> $answerrating[$f]</p>
<div class='answerBar'>
<a href='#' class='upVote vote'>Upvote</a> · <a href='#' class='downVote vote'>Downvote</a> ·
<a class='answerTime'> $difference $periods[$j] ago</a>
· <a href='#' style='color: orange;' class='editAnswer'><b>Edit</b></a></div>
Soluzione
Il .closest()
metodo Ricerche su Attraverso il Dom, dove sembra che tu stia cercando un fratello del .answerBar
elemento, o, davvero, un figlio del .answerContainer
elemento.
Prova questo:
answer = $(this).closest('.answerContainer').find('.singleAnswer');
Questo significa salire attraverso il DOM da this
al più vicino .answerContainer
elemento, allora da lì trova discendenti con classe .singleAnswer
.
Altri suggerimenti
Stai cercando fratelli non più vicini che inizierebbero la ricerca dall'elemento corrente.
answer = $(this).parent('.answerBar').siblings('.singleAnswer');
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow