簡體   English   中英

從動態表單獲取更大價值的輸入

[英]Get input with bigger value from dynamic form

我有下面的HTML,我想使用jQuery找出ida開頭的所有input元素,其值大於idb開頭的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM