关于jquery $.each方法体内的IF方法只执行一次的问题

winner621 2014-02-20 03:18:18
1.有一个SELECT,内有26个OPTION,对应的值为A~Z
2.有一个数组arr,值为[A,B,C]
先用如下代码:
$.each($("select option"),function(i){
if($(this).val()==arr[i]){
//一些代码
//例如:$(this).remove();
}
})

现在的问题是无论无论IF内的代码是什么,都只执行一次,照理应该执行3次,因为ARR中有3个值分别和SELECT的3个OPTION的值相同,搞不懂为什么,改写成FOR形式也是只执行一次,求大神赐教!!
...全文
662 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhjdg 2014-02-20
  • 打赏
  • 举报
回复
是3次
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../lib/jquery/jquery-1.10.2.js"></script>
</head>
<body>
<select id="fbzc_dpt">
  <option value="A">A</option>
  <option value="B">B</option>
  <option value="C">C</option>
  <option value="D">D</option>
  
  <option value="X">X</option>
  <option value="Y">Y</option>
  <option value="Z">Z</option>
</select>



<script>
var arr = ['A','B','C'];
var $1= $("#fbzc_dpt option");
$.each($1,function(i){
	  if($(this).val()==arr[i]){
		alert('a');
	     //一些代码
	      //例如:$(this).remove();
	  }
	})


</script>
</body>
</html>
  • 打赏
  • 举报
回复
很明显,应该是一个for套for的循环,而你值用了一个,你可能考虑些如下的代码
$.each($("select option"),function(i){
	for(var j=0;j<arr.length;j++)
	{
	  if($(this).val()==arr[j]){
		 //一些代码
		  //例如:$(this).remove();
	  }
	}
})
winner621 2014-02-20
  • 打赏
  • 举报
回复
<select id="fbzc_dpt"> <option value="A">A</option> <option value="B">B</option> <option value="C">C</option> <option value="D">D</option> ... <option value="X">X</option> <option value="Y">Y</option> <option value="Z">Z</option> </select> <script> var dpt="X,Y,Z";//字符串形式 var dpt_arr=dpt.split(","); $("#fbzc_dpt").val(dpt);//隐藏域赋值 $.each($("select#fbzc_dpt_op option"),function(i){ if($(this).val()==dpt_arr[i]){ $(this).remove(); } }) </script>
嘻哈大咖秀 2014-02-20
  • 打赏
  • 举报
回复
吧你的html代码和js代码都贴出来,才好帮你调试

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧