2014-11-30 5 views
0

У меня есть DIV следующего вида:захватить текст из DIV в JQuery

<div class='entry'> 
       <p class='entry-text'>собаки играют вместе <a title="Search private" class="app-context-link" href="/contexts/private">@private</a></p> 
       <p class='entry-date'>14172869383540000</p> 
       <p class='entry-menu'>&nbsp;&nbsp;&nbsp;<a class="app-link-menu" href="#">show filtered</a></p> 
       <div class='separator'>&nbsp;</div> 
</div> 

У меня есть код, который вынимает содержимое DIV, который выглядит, как это ниже, но как я могу изменить его поэтому он выводит текст только внутри класса «entry-text»?

$(".entry").on('dblclick', function(e) { 

     e.preventDefault(); 

     // Get the statement into the edit box at the top 
     $("#statement").val(e.currentTarget.innerText); 
} 

Спасибо!

+2

'$ (текст) («начальный текст.»);.' – MH2K9

+0

да, которые могли бы работать, но проблема в том, что у меня есть несколько из них на странице, поэтому она должна быть .entry- текст внутри события e –

+1

'$ (this) .find ('. entry-text'). text();' – MH2K9

ответ

2

Это следует сделать это:

$(".entry").on('dblclick', function(e) { 
    e.preventDefault(); 

    // Get the statement into the edit box at the top 
    $("#statement").val($('.entry-text', e.currentTarget).text()); 
} 

$('.entry-text', e.currentTarget) выбирает все элементы с entry-text класса в пределах e.currentTarget элемента, а затем вызывает .text() на него.

Источники:

1
$(".entry").on('dblclick', function(e) { 
    e.preventDefault(); 

    // Get the statement into the edit box at the top 
    $("#statement").html($('.entry-text', e.currentTarget).text()); 
} 

.val() для InputBox и образует .html() для выбора текста

0

е .currentTarget обычно равен . Это также работает.

$(".entry").on('dblclick', function(e) { 
    e.preventDefault(); 

    // Get the statement into the edit box at the top 
    $("#statement").val($('.entry-text', this).text()); 
}