2013-06-19 56 views
0

我想獲得textarea的值(class =「caption_textarea」),當點擊類「save_caption」的鏈接時。我如何獲得這個textarea的價值jquery

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的未來,最近找到的方法,但我無法檢索最接近的文本框的值的值到一個點擊的元素。以下jQuery代碼:

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

只要擺脫'發現'和你的警報應該工作。 – Archer

+1

@Archer沒有'nearest()'搜索dom樹,所以根本找不到textarea。 '$(本).closest( 'div.caption_text')。找到( 'textarea的')。VAL()'? –

+0

@MarkWalters是的 - 我的壞。感謝您指出我睡不着覺的東西:) – Archer

回答

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

JS FIDDLE

0
最接近

()將查找關閉祖先。你可能會想嘗試下一個()nextAll()

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

或類似的東西應該能正常運行。

+0

我已經嘗試了下一步,它不起作用。 – Sahil

+0

你可以試試 alert($(this).next('textarea')。val()); – user2220771

0

裏面爲什麼要使用最接近使用.find()

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

你可以找到使用.closest()然後找到的textarea的cpmmon父caption_text?我可能錯過了你的代碼的一些細節。 無論哪種方式,不會解決方案是:

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

或者:

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

如果你的問題是,該類是不是唯一的文本區域(我會用一個id但這是由你),嘗試:

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

您可以使用「textarea.mytextarea」嚴格保持到文字區域或。接下來(「textarea的」)。

更正和版本是受歡迎的。

ps:確保「this」給你正確的元素。

+0

我不知道'$(this).next()。val()'是否工作。但是如果它起作用,你應該寫'$(this)'而不是'$('this')'。 '.next(textarea)'應該是'.next('textarea')';) –

+0

是的,沒有被關注,編輯。 –

0

稍微改變選擇器。先取.save_caption的父母,然後尋找其具有.caption_textarea類的兄弟姐妹。您的代碼有點修改如下 -

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

希望它會工作。