Как получить родительское поле textarea с помощью jQuery - PullRequest
1 голос
/ 08 декабря 2011

У меня такая ситуация:

<div class='postit_popup' id='xxx'>
   <div style='margin-left:20px;margin-top:20px;text-align:justify;'>
      <textarea class'txtNota'>some text</textarea>
   </div>
   <div class='clear'></div>
   <div style='margin-left:20px;' align='left'>
      <img class='okNota' src='img/ico/task-completed.png' height='20' width='20'>&nbsp;
      <img class='cancewlNota' src='img/ico/button_cancel.png' height='20' width='20'>
   </div>
</div>

Мне нужно получить контент в текстовой области, когда есть щелчок по изображению с классом "okNota".

Я сделал это в этомway:

$(".okNota").click( function() {

   var obj = $(this).parent().parent();

   alert(obj.children(0).children(0).val());
});

Но мне нужно знать, есть ли другой способ получить его.

Большое спасибо.

Ответы [ 4 ]

4 голосов
/ 08 декабря 2011

Попробуйте:

$(this).parents(".postit_popup").find("textarea").val();

Или, если у вас есть более одной текстовой области в .postit_popup, тогда используйте:

$(this).parents(".postit_popup").find(".txtNota").val();

Для этого необходимо пройти DOM с .okNotaпока не будет найдено .postit_popup, а затем вернется в DOM, чтобы найти textarea или элемент с классом .txtNota.

0 голосов
/ 08 декабря 2011

Использование:

$(this).closest(".postit_popup").find("textarea").val();
0 голосов
/ 08 декабря 2011
$(".okNota").click( function() {     
var value = $('.txtNota').val();
 }); 

Это будет работать.Вы пропали без вести '='.

<textarea class = 'txtNota'>some text</textarea> 
0 голосов
/ 08 декабря 2011

Помогает ли это: http://jsfiddle.net/vgtQR/

EDIT (для JohnP)

HTML

<div class='postit_popup' id='xxx'>
   <div style='margin-left:20px;margin-top:20px;text-align:justify;'>
      <textarea class='txtNota'>some text</textarea>
   </div>
   <div class='clear'></div>
   <div style='margin-left:20px;' align='left'>
       <div class='okNota'>OK Image</div>
   </div>
</div>

JS

$('.okNota').click( function() {
   alert($('.txtNota').val());
});
...