[英]How do I get all the inputs in a element with jQuery?
I'm new to jQuery. 我是jQuery的新手。 I'm trying to get all inputs inside a div element.
我试图将所有输入都放在div元素中。 Here is what I have coded so far:
这是我到目前为止编码的内容:
$(".pros_earnings_delete_annual_earning").click(function(e) {
e.preventDefault();
var target = $(e.target);
var parent = target.parent(".total-for-earnings");
var inputs = parent.children(":input");
console.log(inputs);
$.each(inputs, function(index, value) {
console.log(value);
});
});
When I click I get this: 当我点击我得到这个:
[prevObject: v.fn.v.init[0], context: button.pros_earnings_delete_annual_earning, selector: ".parent(.total-for-earnings).children(:input)", constructor: function, init: function…]
The each method does not seem to output anything. 每种方法似乎都没有输出任何东西。
HTML: HTML:
<div class="total-for-earnings" style='background-color:#ccc;padding:10px;overflow:hidden;'>
<div style='width:160px;float:left;'><strong>Total for 2013:</strong>
<input type='hidden' name='pros_earnings_annual_year[]' value='2013'>
</div>
<input type='text' name='pros_earnings_annual_amount_mul[]' placeholder='0' value='10' size='8' style='width:80px;' />
<select name='pros_earnings_annual_amount_sup[]' style='width:110px;'>
<option value='Thousand'>Thousand</option>
<option value='Million' selected>Million</option>
<option value='Billion'>Billion</option>
</select><span>USD</span>
<div style="float:right;">
<button class="pros_earnings_save_annual_earning" style="margin-left:15px; width:auto; height:25px;">Save</button>
<button class="pros_earnings_delete_annual_earning" style="margin-left:15px; width:25px; height:25px;">-</button>
</div>
</div>
Simply put: 简单的说:
var $inputs = $(':input',parent)
Will match all inputs in the context of the parent element. 将匹配父元素上下文中的所有输入。
You're console.log
is outputting the jQuery object which represents each item in this collection, if you want the value of the input, just ask: 你是
console.log
输出的jQuery对象代表了这个集合中的每个项目,如果你想要输入的值,只需要问:
$inputs.each(function(){
console.log($(this).val());
})
Also, there was one other bug - target.parent(..)
should have been target.parents(..)
(plural) 另外,还有一个bug -
target.parent(..)
应该是target.parents(..)
(复数)
Live example: http://jsfiddle.net/3aJuZ/ 实例: http : //jsfiddle.net/3aJuZ/
Change 更改
var target = $(e.target);
var parent = target.parent(".total-for-earnings");
var inputs = parent.children(":input");
to, 至,
var parent = $(this).closest(".total-for-earnings");
var inputs = parent.find(":input"); //Unlike children(), find() will go any depth to match.
the problem is in this line 问题出在这一行
var parent = target.parent(".total-for-earnings");
change to 改成
var parent = target.parents(".total-for-earnings");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.