Jquery行中的每个循环都不起作用
Jquery each loop in rows not working
我想在单击按钮时获得每个值。我错过了什么?
//add row
$("#btnAdd").click(function(){
$(".oItem:last").clone().insertAfter(".oItem:last");
});
//submit
$("#btnCalc").click(function(){
$("[id^=txtItemName]").each(function(){
alert($("#txtItemName").val());
});
});
我的小提琴在这儿https://jsfiddle.net/k5ndm840/3/
感谢
您对添加的每个新字段使用相同的ID。您应该使用class而不是id,因为id必须是唯一的。
使用$(this).val();
,因为您将在每次迭代中获得this
=>current
元素。在each
回调中,this
指的是element
$("#txtItemName")
将始终选择具有id
的第一个元素作为txtItemName
试试这个:
$("#btnAdd").click(function() {
$(".oItem:last").clone().insertAfter(".oItem:last");
});
$("#btnCalc").click(function() {
$("[id^=txtItemName]").each(function() {
alert($(this).val());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button id="btnAdd">Add</button>
<button id="btnCalc">Submit</button>
<div class="masterItem">
<div class="row oItem">
<div class="col-md-4">
<div class="form-group">
<div class="input-group"><span class="input-group-addon" style="font-weight:bold;color:#330099">Quantity</span>
<input id="txtItemName" type="text" class="form-control" placeholder="put random number here" aria-describedby="basic-addon1">
</div>
</div>
</div>
</div>
</div>
Fiddle here
编辑:根据www
标准,文档中不能有多个元素具有相同的id值[Ref]。在处理attribute
选择器时,您没有遇到任何问题,但ID必须是唯一的
编辑:要在父元素下查找另一个子元素,请使用.closest()
查找parent element
,并使用.find()
选择父元素的子元素。
试试这个:
$("#btnAdd").click(function() {
$(".oItem:last").clone().insertAfter(".oItem:last");
});
$("#btnCalc").click(function() {
$("[id^=txtItemName]").each(function() {
alert($(this).val());
alert($(this).closest(".form-group").find('[id=txtTwo]').val());
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<button id="btnAdd">Add</button>
<button id="btnCalc">Submit</button>
<div class="masterItem">
<div class="row oItem">
<div class="col-md-4">
<div class="form-group">
<div class="input-group"><span class="input-group-addon" style="font-weight:bold;color:#330099">Quantity</span>
<input id="txtItemName" type="text" class="form-control" placeholder="put random number here" aria-describedby="basic-addon1">
<input id="txtTwo" placeholder="second input">
</div>
</div>
</div>
</div>
</div>
当您尝试访问id为的元素时,它总是会给出与选择器条件匹配的第一个元素。
$("#txtItemName").val()
这将始终给出第一个匹配元素的值。试着这样做。
//submit
$("#btnCalc").click(function(){
$("[id^=txtItemName]").each(function(){
console.log($(this).val());
});
});
相关文章:
- 我的javascript for循环不起作用
- javascript for循环不起作用
- 为什么我的While循环不起作用
- JS(node.js)而循环不起作用
- JavaScript 数组/循环不起作用
- Javascript if-else循环不起作用
- 为什么jquery循环不起作用
- JSON 循环不起作用
- 带有本地存储变量的 jQuery 循环不起作用
- 虽然循环不起作用,但只有JavaScript
- 虽然循环不起作用(在其他类似问题中找不到答案)
- 第一个循环不起作用
- jsbin for 循环不起作用 意外的令牌错误
- 为什么循环不起作用
- JQuery ForEeach 循环不起作用
- JavaScript 游戏循环不起作用
- 因为让循环不起作用
- imacros 循环不起作用
- PHP for each 循环不起作用
- JavaScript 确认 PHP 中的弹出窗口,而循环不起作用