0

所以我有一个页面根据隐藏输入内的时间在表格中运行倒计时脚本。

每个输入都有一个单独的 id “id="time_x",其中 x 从 1 增加。

然后每个都将计时器运行到 div 中。

我的问题是如何循环并选择输入列表,以便每个输入都能够将 id 提供给调用计时器的 jquery 函数。

例如

<input ..... id="time_1" value="1000"/>
<input ..... id="time_2" value="2000" />

如何选择所有输入,获取值,然后将其传递给正确的 div。

谢谢

4

5 回答 5

2

为每个元素使用一个新的元素类:

<input class="item" id="time_1" value="1000"/>
<input class="item" id="time_2" value="2000"/>
<input class="item" id="time_3" value="3000"/>

$.each($('.item'),function(){
 console.log($(this).attr('id')); 
});

或者如果你想捕获输入值更容易:

$.each($('.item'),function(){
     console.log($(this).attr("value"));
    });
于 2013-04-03T10:34:02.793 回答
2

试试这个

$('input').each(function(v,i){
    console.log($(this).attr('id'));
});

注意:这将遍历文件中的所有输入。最好为您要循环的所有输入提供类并获取其 id

于 2013-04-03T10:34:35.100 回答
1

您可以使用http://api.jquery.com/attribute-starts-with-selector/$('[id^=time_]')中所述 选择具有该表单 id 的所有输入

您可以在这些 using 上调用一个函数,并且可以通过在循环内部.each()使用来获取当前 ID 的 ID 。this

要获得更具体的答案,您可能需要提出更具体的问题。

于 2013-04-03T10:36:14.123 回答
1

非 jQuery 解决方案:

var inputs = document.getElementsByTagName('input'),
id;

for (var i = 0; i < inputs.length; ++i) {
    id = inputs[i].id;

    if (id.indexOf('time_') == 0) {
        id = id.substr(5);
        // do stuff with id and inputs[i].value
    }
}
于 2013-04-03T10:37:18.730 回答
1

使用“开始于”选择器:

$('input[id^="time"]').each(function() {
   var value = $(this).val(); //get value

   //now get right div and inject value
   $(this).next('div').text(value);       
});
于 2013-04-03T10:42:16.093 回答