2014-04-23 69 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); 
    } 
}