jQuery 可以在调用选择器时在函数中循环吗?

jQuery loop in function while calling selector possible?

我有一些动态构建的表单和所属 ID。 ID 看起来像 id='send_1'... id="send_2"...

一般来说,它只会发布一种形式,但我不知道会创建多少种形式,因此我需要一个通用的 jQuery-函数来完成这项工作。目前,下面的代码仅适用于一个 ID。所以我认为必须可以在选择器中循环使用 whileforeach 之类的东西(如果存在这样的东西?

$(document).on("submit", "#paypal", function(e){
    e.preventDefault();

    if ( /\,/.test( $('#send_1').val() ) ) {
        $('#send_1').val($('#send_1').val().replace(/,/g, '.'));
    } else {
        alert('no comma');
    }
    return  false;
});

那么,当我不知道将存在多少表单,甚至不想只更改 _x 就编写数百次相同的代码时,我该如何为每个 #send_X 执行此操作?

如果有人可以提供帮助,我将不胜感激。

如果您需要循环解决方案,请参阅下面的代码可能会有所帮助

$(document).on("submit", "#paypal", function(e){
    e.preventDefault();

    var i=1;
    $( "li" ).each(function( index ) {                   
        if ( /\,/.test( $('#send_'+i).val() ) ) {
            $('#send_'+i).val($('#send_'+i).val().replace(/,/g, '.'));
        } else {
            alert('no comma');
        }
        i++;
    });
    return  false;
});

或尝试更改

  $('#send_1').val()

  $( "input[id^='send']" ).val();

可能有用我不确定

参见 this link

您可以像这样使用 for loop(为了简化,我删除了您的 if 语句):

$(document).on("submit", "#paypal", function(e) {
  e.preventDefault();

  var n = $("form").length; // get the number of forms

  for (var i = 1; i <= n; i++) {
    var form = $("#send_" + i); // gives you the form object        
  }
});

演示 here

希望对您有所帮助。

您可以为提交按钮添加 data-x-id 并在从以下位置获取 id 后:

$(document).on("submit", "#paypal", function(e){
    e.preventDefault();
    var id = $(e.target).attr('data-x-id');
    // for minimal work with dom
    var element = $('#send_'+id);
    var value = element.val();
    if ( /\,/.test( value ) ) {
        element.val(value.replace(/,/g, '.'));
    } else {
        alert('no comma');
    }
    return  false;
});