Как получить ближайшее значение ‹p› из JQuery?

В моем случае использования я пытаюсь получить ближайшее значение абзаца в JQuery. В html я перебираю список элементов div и пытаюсь получить значение абзаца, используя имя класса из любой итерации [выбрано].

Вот мой HTML-код:

<div class="qanda questiondiv" id="questionarea" name="questionarea">
    <div class="question-inner">
        <div>
            <div id="topic" class="upvote pull-left">
                <a class="upvote"></a>
                <span class="count">3</span>
                <a class="downvote"></a>
            </div>
            <div >
                <div class="qanda-info">
                    <h6><p class="quest_title_val">{{.QuestionTitle}}</p></h6>
                </div>
                <p class="quest_text_val">{{.QuestionText}}</p>
            </div>
        </div >
        <div class="qanda-info">
            <div class="user-info">
                <a href="/userprofile/{{.UserId}}" ><img src="http://tinygraphs.com/spaceinvaders/Dany?theme=frogideas&numcolors=4&size=220&fmt=svg"/>
                </a>
            </div>
            <h6>{{.UserId}}</h6>
            <span class="date alt-font sub">{{.DateCreated}}</span>
            [<a class="edit_question edit_question_button" >edit</a>|<a class="delete_question_button" id="delted" href="/edithowti/">delete</a>]<br>
            <a id="answertext" name ="answertext" type="submit" class="link-text answerbutton">Answer</a>
        </div>
    </div>
</div>

И мой код JQuery:

var originalQuestion = "";

//Enables and disables the question elements 
//for all questions
$('.questiondiv').on('click', '.edit_question', function(e) {
    console.log("In submit edit question text area");
    console.log("question edit");
    e.preventDefault(); 
    //title_val = $(this).closest('p').text('#quest_title_val');
    title_val       = $(this).prev('p').find('.quest_title_val').val();
    question_val    = $(this).closest('.quest_text_val').text();
    console.log("question edit logged in 2");
    console.log("Question title value ", title_val);
    console.log("Question value ", question_val);

    newdiv = "<div class='form-input updated_question'><input name='question_title_val' class='question_title_val' type='text' size='80' value='"+title_val+"' /></div> <br /> <div class='form-input'><textarea name='question_text_val' class='question_text_val' rows='8' cols='80'>"+question_val+"</textarea><br /><div class='form-input'><a type='Submit' id='updatequestion'  name='updatequestion' class='btn btn-primary updatequestion'>Update Question</a><a type='Cancel' id='cancelupdatequestion' name='cancelupdatequestion' class='btn btn-primary cancelupdatequestion'>Cancel</a></div></div>";
    $('.edit_question_button').prop( 'disabled' , true );
    oiginalQuestion = $(this).closest('.questiondiv').innerHTML;
    console.log("Cached div original ", originalQuestion)
    $(this).closest('.question-inner').replaceWith(newdiv);
});

Я пробовал следующий(), предыдущий(), ближайший(). Но не повезло. Может ли кто-нибудь помочь мне с этим? Я довольно новичок в JQuery.


person Dany    schedule 10.03.2016    source источник
comment
quest_text_val не является предком edit_question, поэтому, просто используя closest, вы не можете его найти... вместо этого вы можете найти quest_text_val в том же question-inner, что и edit_question, на который нажали.   -  person Arun P Johny    schedule 10.03.2016
comment
@ArunPJohny - сработало. Спасибо.   -  person Dany    schedule 10.03.2016
comment
Также я пытаюсь поймать html-контент из questiondiv. Но oiginalQuestion = $(this).closest('.questiondiv').innerHTML; не работает. Я пробовал разные варианты. Это не работает. Не могли бы вы помочь мне с этим. Это было бы очень полезно.   -  person Dany    schedule 10.03.2016
comment
@ArunPJohny - Не могли бы вы помочь мне с этой проблемой JQuery, которая похожа на эту. stackoverflow.com/questions/35965155/ . Извините, я не могу найти решение для этого.   -  person Dany    schedule 13.03.2016