如何获得此textarea jquery的值

时间:2013-06-19 08:30:47

标签: javascript jquery html closest

点击带有“save_caption”类的链接时,我试图获取textarea(class =“caption_textarea”)的值。

textarea的值是用ajax更改的,我不在此处,因此它并不总是空的。

我有以下HTML代码:

  <div class="caption_text" style="display:none;">
      <div class="small_icons">
          <a href="#" onclick="return false;" class="save_caption"><img src="<?php echo base_url('public/images/tick.png'); ?>"/></a>
          <a href=""><img src="<?php echo base_url('public/images/delete.png'); ?>"/></a>
      </div>
      <textarea id="<?php echo $image_name_without_path[0]; ?>" class="caption_textarea" cols="32" rows="2" name="caption_text"></textarea>
  </div>

我尝试了jquery的next,nearest和find方法,但是我无法将最近的textfield值的值检索到单击的a元素。下面的Jquery代码:

 jQuery(document).ready(function($) {
     $('.save_caption').live("click", function() {
           alert($(this).closest('textarea').find('.caption_textarea').val());
     });
 });

5 个答案:

答案 0 :(得分:0)

nearest()查找关闭祖先。您可能想尝试 next() nextAll()

jQuery(document).ready(function($) {
     $('.save_caption').live("click", function() {
           alert($(this).next('textarea.caption_textarea').val());
     });
 })

或类似的东西应该可以正常工作。

答案 1 :(得分:0)

您可以使用.closest()找到共同的父caption_text,然后使用.find()找到其中的textarea

jQuery(document).ready(function($) {
     $('.save_caption').live("click", function() {
           alert($(this).closest('.caption_text').find('.caption_textarea').val());
     });
 });

答案 2 :(得分:0)

jQuery(document).ready(function($) {
     $('.save_caption').live("click", function() {
          alert($(this).closest('.caption_text').find('.caption_textarea').val());
     });
 });

JS FIDDLE

答案 3 :(得分:0)

你为什么使用最近的?我可能错过了你的代码的一些细节。 无论哪种方式,解决方案都不会是:

alert($('.mytextarea').val());

或者:

alert($('.mytextarea').html());

如果您的问题是该类不是该文本区域的唯一(我会使用id,但这取决于您),请尝试:

alert($(this).next().val());

您可以使用'textarea.mytextarea'将其严格保留为textareas或.next('textarea')。

欢迎更正和版本。

ps:确保“this”为您提供正确的元素。

答案 4 :(得分:0)

稍微改变选择器。首先选择 .save_caption 的父级,然后查找具有 .caption_textarea 类的兄弟姐妹。您的代码在下面稍作修改 -

    jQuery(document).ready(function($) {
         $('.save_caption').live("click", function() {
               alert($(this).parent().siblings('.caption_textarea').val());
         });
     });

希望它能奏效。