jquery如何生成一个While,该While获取所有以String开头的元素并获取最后2个整数

jquery how to make a While that get all element start with String and get last 2 integer

本文关键字:While 获取 开头 String 元素 整数 2个 最后 一个 jquery 何生成      更新时间:2023-09-26

朋友们好,我有一个问题,我想帮忙解决。我有一个不确定数量的元素,格式如下:

<input type="text" id="p_fase_1" name="p_fase_1" value="1" required>
<input type="text" id="p_fase_2" name="p_fase_2" value="1" required>

每个元素的区别在于ID和名称,并以不同的数字结尾。

我需要获取id中以这个id String开头的所有元素的最高数量及其值。

p_fase_"this number" value="this value"

代码:

[id^="p_fase_"]

比如花一些时间处理这些元素,并将最大值保存在变量中

这是我的jsFiddle:https://jsfiddle.net/nuaoch70/

我是这样做的:

$(document).ready(function() {
    var highestNumber = 0;
    $("input[id^='p_fase_']").each(function() {
        var number = $(this).attr("id").replace("p_fase_", "");
        highestNumber = Math.max(highestNumber, number);
    });
    console.log("Highest Number is: " + highestNumber);
});

我需要获得以开头的所有元素中的最高数量该id id中的字符串及其值

因此:

var maxO = $('[id^="p_fase_"]').map(function(){
    return {idNum: this.id.split('_').pop(), value: this.value};
}).get().sort(function(a,b){
    return a.idNum - b.idNum;
}).pop();
console.log(maxO);

-jsFiddle-

您可以使用映射元素并获得最大值

var max = Math.max.apply(null, $('[id^="p_fase_"]').map(function(){
    return this.value;
}));

如果要在name属性中设置最大数量:

var max = Math.max.apply(null, $('[id^="p_fase_"]').map(function(){
    return this.name.split('_').pop();
}));

id:中

var max = Math.max.apply(null, $('[id^="p_fase_"]').map(function(){
    return this.id.split('_').pop();
}));