Jquery行中的每个循环都不起作用

时间:2016-03-29 07:28:06

标签: javascript jquery

我想在点击按钮时获取每​​个值。 我错过了什么?

//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/

感谢

3 个答案:

答案 0 :(得分:3)

您为每个要添加的新字段使用相同ID 。你应该在你的情况下使用class而不是id,因为id必须是唯一的。

答案 1 :(得分:1)

使用$(this).val();,因为您将获得this =>每次迭代中都有current个元素。在each回调中,this指的是element

$("#txtItemName")将始终选择idtxtItemName

的第一个元素

试试这个:

$("#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值的元素。 [{{3} }]。当您处理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>

答案 2 :(得分:0)

当您尝试访问具有id的元素时,它将始终给出与选择器条件匹配的第一个元素。

import myImplicitStrColumn
val parser = get[Option[String]]("col")

这将始终给出第一个匹配元素的值。试着这样做。

$("#txtItemName").val()