javascript - 使用 jquery 进行循环

标签 javascript jquery

在 jquery 函数中使用“for”循环的正确方法是什么?提前TQ。

<script type="text/javascript">
$(document).ready(function() {
	for(var $i=1; $i<=10; $i++){
     $('#TTID[$i]').change(function() {
         if($(this).val() == "601" || $(this).val() == "9999")
         {
             $('#trainGroup[$i]').prop('disabled', true);
			 $('#trainID[$i]').prop('disabled', true);
         }
         else
         {
             $('#trainGroup[$i]').prop('disabled', false);
			  $('#trainID[$i]').prop('disabled', false);
         }
     }});
	
 });
</script>

这是 TTID 和 trainGroup 的 HTML 代码。当用户选择值“601”或“9990”时,trainGroup 的下拉列表将被禁用。

<td>Action</td>
		<td><select name = "TTID<?php echo $i; ?>" id="TTID<?php echo $i; ?>" style="width:250px" onchange="otherAction(this.value)">
		<option value="O"></option>
    	<option value="600">Classroom Training</option>
  		<option value="601">Coaches and Mentoring by IM</option>
  		<option value="602">On Job Training</option>
		<option value="9999">Others</option>
		</select></td>
		
	
		<td>Types Training in ILSAS</td>
		<td><select name = "trainGroup<?php echo $i; ?>" id="trainGroup<?php echo $i; ?>" style="width:250px" onchange="otherIlsas(this.value)">
		<option value="O"></option>
    	<option value="700">Power Engineering & Energy Training</option>
  		<option value="701">Management Training</option>
  		<option value="702">IT & Corporate System Training</option>
		<option value="703">Business Operation Tools Certification</option>
		<option value="9999">Others</option>
		</select></td>
		

下面是trainID代码。我从数据库中检索了此下拉列表的数据。

		<td>List of Training in ILSAS</td>
		<td><?php 
		
		$u="SELECT trainID, trainText FROM tbltraininglist order by traintext asc";
		$q=mysql_query($u);
		
		echo "<select name = 'trainID<?php echo $i; ?>' id='trainID<?php echo $i; ?>' style='width:250px' )'>";
		echo "<option value ='null'></option>";
		while ($m = mysql_fetch_array($q)) {
		
  		
  		?>
			<option value="<?php echo $m['trainID'];  ?>"><?php echo $m['trainText']; ?> </option>
			<?php
  		}	
		
		?>
		</select></td>

最佳答案

这是你的 for 循环,所有问题都已修复

错误的解释遵循代码

$(document).ready(function() {
    for (var $i = 1; $i <= 10; $i++) {
        (function(TTID, trainGroup, trainID) {
            $(TTID).change(function() {
                if ($(this).val() == "601" || $(this).val() == "9999") {
                    $(trainGroup).prop('disabled', true);
                    $(trainID).prop('disabled', true);
                } else {
                    $(trainGroup).prop('disabled', false);
                    $(trainID).prop('disabled', false);
                }
            });
        }('#TTID[' + $i + ']', '#trainGroup[' + $i + ']', '#trainID[' + $i + ']'));
    }
});

1) 你有像 $('#TTID[$i]') 这样的东西 - 其中 $i 是 for 循环中的 var - 在 javascript 中不起作用,你需要$('#TTID[' + $i + ']') - 但是,

2) $i 对于every .change 函数来说是 11 因为一旦循环完成它就是它的值并且 .change 只会在循环完成后被调用,所以,我包装了.更改 IIEF 中的内容,并一次性解决您的代码可能遇到的 $i 问题

关于javascript - 使用 jquery 进行循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31714137/

相关文章:

javascript - jQuery 动画如果 load() 返回不同的东西

javascript - 如何包含一个js文件,满足jquery中的条件

javascript - $(document).ready 和 $ ('#id' ).change 产生不同的结果

javascript - div 内的滚动 div 出现在具有较高 z-index 的 div 上

javascript - 我如何在 mongoose 中引用模式的 ID

javascript - 使用 Javascript 的正则表达式

javascript - 有没有一种方法可以计算所有 DOM 元素的堆叠上下文,以便使用 JavaScript 比较上述位置的任意两个元素?

javascript - 使用 Greasemonkey/Tampermonkey 保存数据供以后检索

javascript - 如果将文本输入到表单输入中,如何使 div 出现

javascript - 如何使用 jQuery 检查图像是否加载?