2014-04-23 68 views
4

在下面的代碼中,當我點擊類標記des_searchDate 的錨點標記時,我想獲得緊跟輸入域值的值。點擊一個元素獲取子隱藏輸入域的值

我嘗試以下

<html> 
    <div class="searched_date"> 
     <a href="#" class="des_searchDate"> 
      04-15-2014 
      <input type="hidden" value="2014-04-15" name="searched-date"> 
     </a><br> 
     <a href="#" class="des_searchDate"> 
      04-09-2014 
      <input type="hidden" value="2014-04-09" name="searched-date"> 
     </a><br> 
     <a href="#" class="des_searchDate"> 
      04-23-2014 
      <input type="hidden" value="2014-04-23" name="searched-date"> 
     </a><br> 
    </div> 
</html> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 

<script type="text/javascript"> 

    jQuery(document).on('click', ".des_searchDate", function(){ 

    var decDate = jQuery(this).next().find('input').val(); 

alert(decDate); 
}); 

</script> 

但我在警報越來越不確定。我的代碼有什麼問題?

+0

@ Muk你想要錨點內的輸入值嗎? – mdesdev

+0

@Felix我知道,但我有這樣的要求 – Muk

回答

3
jQuery(document).on('click', ".des_searchDate", function(){ 
var decDate = jQuery(this).find('input').val(); 
alert(decDate); 
}); 

demo fiddle

4
jQuery(document).on('click', ".des_searchDate", function(){ 
    var decDate = jQuery(this).find('input').val(); 
    alert(decDate); 
}); 

這裏有一個的jsfiddle

http://jsfiddle.net/yT777/

+1

啊,這是最正確的。我假設OP想要下一個元素,但我沒有閱讀標題。 ** + 1 ** – Anton

+1

@Anton我通常犯這樣做,所以它會改變我! –

1

如果你想輸入的點擊的錨點值:

jQuery(document).on('click', ".des_searchDate", function(){ 
var decDate = jQuery(this).find('input').val(); 
alert(decDate); 
}); 

或者,如果你需要一個輸入的值點擊錨如下:

jQuery(document).on('click', ".des_searchDate", function(){ 
var decDate = jQuery(this).nextAll('input:first').val(); 
alert(decDate); 
}); 
1
$('.des_searchDate').click(function(){ 
    var decDate = $(this).find('input').val(); 
    alert(decDate); 
}); 
0

可以在純JavaScript做到這一點,沒有必要的jQuery:

Pure JS Fiddle

var sd = document.getElementsByClassName("des_searchDate"); 

for (i = 0;i<sd.length;i++){ 
    var s = sd[i]; 
    s.onclick = function(){ 
    var input = this.getElementsByTagName("input")[0]; 
    alert(input.value); 
    } 
}