jQuery在下一个Div Nest中获取输入字段的值

时间:2017-07-05 10:26:29

标签: javascript jquery

我正在尝试使用类' fullaccountcode'来获取嵌套在下一个div中的输入字段的值。但是当我提醒结果时它会一直空着。

HTML:

<div class="row">
                    <div class="col-lg-1 col-md-1 col-sm-2 col-xs-2 fullaccountcode">
                        <input type=text name=mcode[] id=mcode placeholder="34" class="form-control">
          </div>
                    <div class="col-xs-1 show-slash">
                        <span>/</span>
                    </div>
                    <div class="col-lg-1 col-md-1 col-sm-2 col-xs-2 fullaccountcode">
                        <input type=text name=ccode[] id=ccode placeholder="01" class="form-control" value="yello">
                    </div>
                    <div class="col-xs-1 show-slash">
                        <span>/</span>
                    </div>
                    <div class="col-lg-1 col-md-1 col-sm-2 col-xs-2 fullaccountcode">
                        <input type=text name=sacode[] id=sacode placeholder="0016" class="form-control">
                    </div>
                </div>

JS:

$(document).on("keyup","#mcode",function() {
  alert($(this).closest('div').nextAll('.fullaccountcode').eq(0).val());
});

JSFiddle Demo

2 个答案:

答案 0 :(得分:1)

您的代码中有2个问题:

1)您的目标是div而不是其中的输入元素。获取目标div元素后使用.find('input')

2)eq选择器也基于零索引来定位元素。您应该使用:eq(0).first()来定位匹配集中的第一个元素:

$(document).on("keyup","#mcode",function() {
  alert($(this).closest('div').nextAll(".fullaccountcode").eq(0).find('input').val());
});

<强> Working Demo

答案 1 :(得分:0)

您可以使用$(this).parent().next().next().find("input").val()

$(document).on("keyup","#mcode",function() {
  	console.log($(this).parent().next().next().find("input").val());
    alert($(this).parent().next().next().find("input").val());
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
						<div class="col-lg-1 col-md-1 col-sm-2 col-xs-2 fullaccountcode">
							<input type=text name=mcode[] id=mcode placeholder="34" class="form-control">
              </div>
						<div class="col-xs-1 show-slash">
							<span>/</span>
						</div>
						<div class="col-lg-1 col-md-1 col-sm-2 col-xs-2 fullaccountcode">
							<input type=text name=ccode[] id=ccode placeholder="01" class="form-control" value="yello">
						</div>
						<div class="col-xs-1 show-slash">
							<span>/</span>
						</div>
						<div class="col-lg-1 col-md-1 col-sm-2 col-xs-2 fullaccountcode">
							<input type=text name=sacode[] id=sacode placeholder="0016" class="form-control">
						</div>
					</div>