Jquery为多个ID应用单个函数

时间:2016-02-02 14:20:21

标签: javascript jquery

我动态生成三组输入框的ID(自动增量)。所以一组有ID,例如" inputbox1,inputbox2等"另一组有ID,如" value1,value2等"第三组有" result1,result2等"

我在jquery中的基本功能是:

$("#button").click(function() {
var inputbox1 = parseInt($('#inputbox1').val());
var value1 = parseInt($('#value1').val());

$("#result1").val(inputbox1 + value1);
});

我不知道会有多少个输入框,因为它们是动态生成的。那么我如何为所有文本框应用相同的基本功能呢?我知道像这样的多个函数效率低下,可能不是正确的方法。

$("#button").click(function() {
var inputbox1 = parseInt($('#inputbox1').val());
var value1 = parseInt($('#value1').val());
$("#result1").val(inputbox1 + value1);

var inputbox2 = parseInt($('#inputbox2').val());
var value2 = parseInt($('#value2').val());
$("#result2").val(inputbox2 + value2);
});

3 个答案:

答案 0 :(得分:2)

$("#button").click(function() {

  $('input[id="^inputbox"]').each( function(){
    var inputbox = parseInt($(this).val());
    var number = $(this).attr( "id" ).split ( "inputbox" )[ 1 ];
    var value =  parseInt($('#value' + number).val());
    $("#result" + number).val(inputbox + value);

  });
});

答案 1 :(得分:1)

您可以编写ID属性的查询以匹配前缀子字符串,因此您可以获得具有以“inputbox”开头的ID属性的每个元素。

$("[id^='inputbox']").each(function() { 
  // extract the number with a simple split or substring, and do whatever you need 
});

如果您需要,可以更具体:

$("input[id^='inputbox']").each(function() { 
  // extract the number with a simple split or substring, and do whatever you need
});

请参阅the documentation

答案 2 :(得分:0)

尝试使用.each():

$('input').each(function(e){
    //do your stuff
});

您可能需要确定要包含在另一个类中的特定输入。在这种情况下,使用id不会起作用。

查看此页面:http://api.jquery.com/each/