我在创建一些执行以下操作的代码时遇到了IE7中的错误:
根据select的值动态创建表单(字段各不相同)。触发on change事件时会发生这种情况。
创建的元素之一是空白下拉列表或选择标记。最初我通过创建一个字符串然后将该字符串附加到div来创建select。
var html = "<select id=\"" + id + "\" class=\"" + this.clazz + "\" name=\"" + this.name + "\"></select>";
$table.find(".table-body").append(html);`
然后,当在另一个下拉列表中触发更改事件时,我将选项附加到下拉列表。想想级联下拉列表。
$dropdown.append($("<option></option>").attr("value","TEST").text("TESTTEXT");
在IE7中,当我点击下拉列表时没有任何反应(没有显示选项),使用IE8开发人员工具我可以看到选项存在。 BTW:我使用开发人员工具通过IE8运行IE7。
我通过更改此行找到了解决此问题的方法:
var html = "<select id=\"" + id + "\" class=\"" + this.clazz + "\" name=\"" + this.name + "\"></select>";
到
var html = "<select id=\"" + id + "\" class=\"" + this.clazz + "\" name=\"" + this.name + "\"><option></option></select>";
我不确定为什么会这样。任何人都可以更好地解释为什么会出现这个问题以及为什么在字符串中添加选项修复它?感谢。
BTW:我正在使用Jquery 1.6