首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JQuery:遍历输入元素

JQuery:遍历输入元素
EN

Stack Overflow用户
提问于 2013-03-27 23:32:30
回答 3查看 20K关注 0票数 8

我有几行输入框(文本)需要迭代,将一行中的值相乘,然后对乘积求和。我能找到的唯一解决方案是将输入框转换为数组:

代码语言:javascript
运行
复制
var array1 = $('input[id$="txtVal1"]').toArray();
var array2 = $('input[id$="txtVal2"]').toArray();
var temp1;
var temp2;
var sum=0;

然后使用以下命令进行迭代和求和:

代码语言:javascript
运行
复制
for (i = 0; i < array1.length; i++) {
    if (array1[i].value.length > 0) { //make sure we have data
        temp1 = parseFloat(array1[i].value);
        temp2 = parseFloat(array2[i].value);
        sum += temp1 * temp2;
    }
}

这是可行的。然而,我只是在学习JQuery,并且想使用规范方法。

EN

回答 3

Stack Overflow用户

发布于 2013-03-27 23:35:57

您可以直接循环遍历通过选择器找到的所有项,如下所示:

代码语言:javascript
运行
复制
$('input').each(function(index,data) {
   var value = $(this).val();
});
票数 12
EN

Stack Overflow用户

发布于 2013-03-27 23:53:44

如前所述,您可以使用.each()来完成此任务,但这里有一个示例,它根据问题中的请求使用您的数据。你提到了输入的“行”,所以我假设它在一个表行中:

代码语言:javascript
运行
复制
$('tr').each(function () {
    var $this = $(this),
        sum = parseFloat($this.find('input[id$="txtVal1"]').val()) * parseFloat($this.find('input[id$="txtVal2"]').val());
    alert(sum);
});

这是一个jsFiddle Example

票数 3
EN

Stack Overflow用户

发布于 2013-03-27 23:35:02

不需要使用toArray,使用.each()方法。

代码语言:javascript
运行
复制
$('input[id$="txtVal1"]').each(function(index) { 
    // do something here
    $(this).addClass( "myClass" );
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15662836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档