2012-03-04 143 views
1

我有HTML:获取嵌套元素值

<div> 
    <label> 
     <input type='radio' name='a'> 
     <span></span> 
     <input type='hidden' value='1'> 
    </label> 
    <label>... 
</div> 

我需要通过点击事件标签上得到隐藏的输入值。

我的JavaScript是这样的:

$('label').live('click', function() { 

     var value = $(this).children('input:hidden').val(); 

    }); 

但是,这是不行的。任何人都可以帮忙吗?

+0

那么,你有'价值'变量那里,但你似乎没有做任何事情。 – BoltClock 2012-03-04 08:41:08

+0

在Chrome浏览器中试用console.log($(this).children('input:hidden').val())来查看控制台选项卡 – dotoree 2012-03-04 08:44:24

+0

“BoltClock”中的值,这与我将如何处理此值无关。这不是一个问题。我的问题是获得这个价值 – 2012-03-04 08:51:43

回答

1

正常工作:

<div> 
    <label> 
     <input type='radio' name='a'> 
     <span></span> 
     <input type='hidden' value='1'> 
    </label> 
</div> 
<script type="text/javascript"> 
    $('label').live('click', function() { 
     var value = $(this).children('input:hidden').val(); 
     console.log(value); 
    }); 
</script> 

输出:1

1
<form action="form_action.asp" method="get"> 
Email: <input type="text" name="email" /><br /> 
<input type="hidden" name="country" value="Norway" /> 
<input type="submit" value="Submit" /> 
    </form> 


$(function() { 
$('label').on('click', function() { 
    var value = $(this).children('input:hidden').val(); 

}); 

});

1

首先,除非你绝对要,你应该避免live()的功能。根据jQuery的版本,使用bind()click()on()

但你的代码工作正常,看this Fiddle