我正在尝试使用类' 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());
});
答案 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>