jquery 操作select IE7下奇怪问题

发布于 2021-11-09 15:32:53 字数 1143 浏览 857 评论 6

在IE下,点击click me 按钮两次会出现下拉框不可选,不知为何,重新创建的select控件,第二次添加值会出问题。火狐下没有此问题

<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<SCRIPT type="text/javascript">
<!--
var add_i = 0;
$(function (){
	$("#btn").click(function (){
		if(add_i%2 == 0){
			if(window.console != undefined)console.log('create select');
			$("#box").empty().append('<p>'+add_i+'</p><select name="A" id="A"></select>');
		}
		var data = {"4249":"Manicaland","4250":"Mashonaland Central","4251":"Mashonaland East","4256":"Mashonaland West","4255":"Masvingo","4253":"Matabeleland North","4254":"Matabeleland South","4252":"Midlands"};
		var str = "<option value=''> Select State/Province </option>";
		for(i in data){
			str+= "<option value='" + i + "'>" + data[i] + "</option>";
		}
		$("#A").empty().append(str);
		add_i++;
	});
});
//-->
</SCRIPT>
<div id="box">
	<select name="A" id="A">
	</select>
</div>
<input type="button" value="click me" onclick="" id="btn">

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

巡山小妖精 2021-11-12 23:23:16

迭代时最好加上个判断,并且对变量加上var 定义

for(var x in data){
  if (data.hasOwnProperty(x)) {
     str+= "<option value='" + x + "'>" + data[x] + "</option>";
  }
  ...
}

 

我个人习惯是对数组循环用i变量,对对象迭代用x变量名,这样就不容易混淆。

 

简单气质女生网名 2021-11-12 22:51:58

迭代时最好加上个判断,并且对变量加上var 定义

for(var x in data){
  if (data.hasOwnProperty(x)) {
     str+= "<option value='" + x + "'>" + data[x] + "</option>";
  }
  ...
}

 

我个人习惯是对数组循环用i变量,对对象迭代用x变量名,这样就不容易混淆。

 

梅窗月明清似水 2021-11-12 13:56:34

可以换个低版本的jquery看看

无边思念无边月 2021-11-12 13:32:40

用firebug看看是否新创建的select元素高度有问题。

疾风者 2021-11-11 08:15:36

用firebug看看是否新创建的select元素高度有问题。

本宫微胖 2021-11-10 13:45:42

那可能是

$("#box").empty().append('<p>'+add_i+'</p><select name="A" id="A"></select>'); 这段代码有问题,你换个创建select对象的方式看看,分别创建P和SELECT对象。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文