单击父div,获取子值 - 不进行字符串操作

时间:2012-04-18 19:48:28

标签: javascript jquery html

如何获取子输入值;来自其父div的点击事件 -

动态HTML

<div class="tableRowOdd">
  <input type="hidden" value="28"> 

  04/11/2012
</div>

JS

$('#historyContainer .tableRowOdd').live( 'click', function(e) {

     // Here I want to get the hidden-input's value directly  
     // something like- $(this+'input').val()
     console.log( $(this) );

});

不想从 $(this).html()

进行字符串操作

请帮忙。

4 个答案:

答案 0 :(得分:3)

$('#historyContainer .tableRowOdd').live( 'click', function(e) {
     console.log( $(this).find('input').val() ); // or .text()
});

请注意,这将遍历所有输入。如果你只想要第一个:

$('#historyContainer .tableRowOdd').live( 'click', function(e) {
     console.log( $(this).find('input').first().val() ); // or .text()
});

答案 1 :(得分:2)

$(this).find('input').val()应该返回值。

注意:如果您使用的是jQuery 1.7或使用.on旧版本,请使用.delegate.live不是首选功能。

对旧版本使用.delegate

$('#historyContainer').delegate('.tableRowOdd', 'click', function(e) {
     $(this).find('input').val()
     console.log( $(this) );
});

使用.on对于jQuery 1.7,

$('#historyContainer').on('click', '.tableRowOdd', function(e) {
     $(this).find('input').val()
     console.log( $(this) );
});

答案 2 :(得分:2)

可以通过jQuery实现:

$('#historyContainer .tableRowOdd').live( 'click', function(e) {

     // if you have more inputs and wanna get the hidden 
     console.log( $(this).find('input[type="hidden"]').val() );
});

答案 3 :(得分:1)

你可以这样做;

$(this).find('input').val()