Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery if语句在for循环内部不起作用_Javascript_Jquery_Arrays_For Loop_Each - Fatal编程技术网

Javascript jQuery if语句在for循环内部不起作用

Javascript jQuery if语句在for循环内部不起作用,javascript,jquery,arrays,for-loop,each,Javascript,Jquery,Arrays,For Loop,Each,我很难弄清楚这里出了什么问题。当我在IF语句中使用“#账户资金-”+i时,它不起作用,但与“#账户资金-0”一起起作用。我需要能够循环通过未知数量的对象数组。我做错了什么 HTML *页面上可以有X个.funding内容分区。每个带有-0的ID都将从js中递增 <form id="accountform" name="accountForm"> <div class="funding-content funding-selected-0"> <div cl

我很难弄清楚这里出了什么问题。当我在IF语句中使用“#账户资金-”+i时,它不起作用,但与“#账户资金-0”一起起作用。我需要能够循环通过未知数量的对象数组。我做错了什么

HTML *页面上可以有X个.funding内容分区。每个带有-0的ID都将从js中递增

<form id="accountform" name="accountForm">

 <div class="funding-content funding-selected-0">
   <div class="container">
    <h3>Funding for [account selected]</h3>

     <div class="funding-type-transfer" id="funding-type-transfer-0">

       <div class="form-inputs">
         <div class="lx-grid lx-grid--gutters">
           <div class="lx-grid__cell lx-grid__cell--1-2--above-md">
             <label for="account-funding-0">Routing Number</label>
             <input id="account-funding-0" type="text" maxlength="9">
           </div>
         </div>
       </div>
     </div>
   </div>
 </div>
</form>

[选定账户]的资金
路由号码
不起作用:

var amountOfAccounts = $( '#account-form .funding-content' ).length;

for ( i = 0; i <= amountOfAccounts; i++ ) {

    if ( $( '#account-funding-'+i ).val() == '' ) {
        document.getElementById( 'account-funding-'+i ).setCustomValidity( 'Routing Number is a required field.' );
    }
}
var amountOfAccounts = $( '#account-form .funding-content' ).length;

for ( i = 0; i <= amountOfAccounts; i++ ) {

    if ( $( '#account-funding-0' ).val() == '' ) {
        document.getElementById( 'account-funding-'+i ).setCustomValidity( 'Routing Number is a required field.' );
    }
}
var amountOfAccounts=$(“#账户形式.资金内容”).length;

对于(i=0;i如果我理解正确,您在循环中没有得到正确的
id
? 如果是,请将要创建的循环变量设置为
let
,这样它就不会被提升,并且是该循环的块范围


另外,要循环使用正确数量的元素,请使用
如果我理解正确,您在循环中没有获得正确的
id
? 如果是,请将要创建的循环变量设置为
let
,这样它就不会被提升,并且是该循环的块范围


另外,要循环使用正确数量的元素,请使用
显然,索引与某个元素不匹配。但是,您不需要这样做。JQuery提供了一个方法来循环对象,因此您不必担心以下任何问题:

$( '#account-form .funding-content' ).each(function(index, element){
   if(element.val() !== ""){
      // Do something
   }
});

显然,索引与某个元素不匹配。但是,您不需要这样做。JQuery提供了一个方法来循环对象,因此您不必担心以下任何问题:

$( '#account-form .funding-content' ).each(function(index, element){
   if(element.val() !== ""){
      // Do something
   }
});

同时添加HTML
“#帐户资金-”+i
确实会导致
“#帐户资金-0”
,因此我觉得这开始成为一个XY问题。你看到什么不起作用了?它应该起作用。也就是说,页面可能没有完全加载,这会导致错误。在发布HTMLH之前很难诊断但是,这样保存一系列
id
s是一种反模式。只需遍历
$(“#帐户表单.资金内容”)返回的jQuery集即可
@T.J.Crowder…谢谢你的建议。看起来这就像是简单的更改添加HTML一样
“#帐户资金-”+i
确实会导致
“#帐户资金-0”
,所以我觉得这开始成为一个XY问题。你看到什么不起作用了?它应该起作用。尽管如此,这是可能的页面未完全加载,这会导致错误。在发布HTMLHaving一系列
id
s之前很难诊断,但这是一种反模式。只需遍历
$(“#帐户表单.资金内容”)返回的jQuery集即可
@T.J.Crowder…谢谢你的建议。看起来就像改变一样简单谢谢。你的答案和@T.J.Crowder一起解决了问题。我只需要改变谢谢。你的答案和@T.J.Crowder一起解决了问题。我只需要改变