[英]Get input with bigger value from dynamic form
我有下面的HTML,我想使用jQuery找出id
以a
开头的所有input
元素,其值大于id
以b
开头的id
。 对于此示例,下面的结果将选择它为#a2
和#a3
。
<div class="form">
<input id="a1" value="1" />
</div>
<div class="form">
<input id="b1" value="5" />
</div>
<div class="form">
<input id="a2" value="3" />
</div>
<div class="form">
<input id="b2" value="1" />
</div>
<div class="form">
<input id="a3" value="2" />
</div>
<div class="form">
<input id="b3" value="1" />
</div>
<div class="form">
<input id="a4" value="1" />
</div>
<div class="form">
<input id="b4" value="5" />
</div>
...
您可以将.filter()
与可比较两个值的条件一起使用:
$('[id^=a]').filter(function(){
return parseInt($(this).val(),10) > parseInt($(this).parent().next().find('input').val(),10)
});
更新:获取与条件匹配的元素的ID
$('[id^=a]').filter(function(){
return parseInt($(this).val(),10) > parseInt($(this).parent().next().find('input').val(),10)
}).map(function(){
return $(this).attr("id");
}).get().join("-")
您可以使用“属性始于”选择器和filter()
来实现:
var $a = $('[id^="a"]').filter(function() {
var aVal = parseInt($(this).val(), 10);
var bVal = parseInt($(this).closest('.form').next().find('input').val(), 10);
return aVal > bVal;
});
$a
变量现在将包含a
元素,其值比其直接同级b
更高。
如何获取ID a =“”结尾的所有数字到数组中?
为此,您可以使用map()
:
var aValues = $a.map(function() {
return this.value;
}).get();
console.log(aValues); // shows all the larger A values gathered.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.