1

当单击类“save_caption”的链接时,我试图获取文本区域(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、closest 和 find 方法,但我无法检索与单击的 a 元素最接近的文本字段值的值。jQuery代码如下:

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

5 回答 5

0

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

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

或者:

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

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

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

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

欢迎更正和编辑。

ps:确保“this”给了你正确的元素。

于 2013-06-19T08:42:50.010 回答
0
jQuery(document).ready(function($) {
     $('.save_caption').live("click", function() {
          alert($(this).closest('.caption_text').find('.caption_textarea').val());
     });
 });

JS小提琴

于 2013-06-19T08:41:42.283 回答
0

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

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

希望它会奏效。

于 2013-06-19T08:47:46.180 回答
0

最近() 寻找关闭的祖先。您可能想尝试next()nextAll()

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

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

于 2013-06-19T08:37:23.070 回答
0

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

jQuery(document).ready(function($) {
     $('.save_caption').live("click", function() {
           alert($(this).closest('.caption_text').find('.caption_textarea').val());
     });
 });
于 2013-06-19T08:38:37.590 回答