我会尽可能多地保存背景故事,但以下是我想要弄清楚的。jquery版本,ajax和Internet Explorer的奇怪问题
我有两个下拉列表,第一个是状态列表,第二个是该州的学校。使用json和php更改选择会触发学校列表。
使用jquery 1.3.2,在Firefox和IE9中一切正常。在IE8中,我收到了一个指向'for'循环的语法错误,脚本不起作用。如果我能弄清楚'for'循环的问题是什么,并且实际上可以使脚本在1.3.2下工作,那很好。
我试着升级到1.4.4或任何较新版本的jquery,当我这样做时,脚本根本不起作用,在任何浏览器中,通过研究我都无法弄清原因。
为了什么它值得我也使用getJSON而不是ajax,如果这在任何地方都有所作为。
$(document).ready(function(){
$("select#addr_state").change(function(){
$.ajax({
url: 'schools.php',
dataType: 'json',
cache: false,
data: {id: $(this).val(), type: "list"},
success: function(j){
var options = '';
for (var i = 0; i < j.length; i++) {
options += "<option value='" + j[i].optionValue + "'>" + j[i].optionDisplay + "</option>";
}
$("select#school_id").html(options);
}
});
})
})
对于那些想看到错误的人,它不会让我张贴屏幕截图作为新成员。我正在使用浏览器测试,他们正在使用CompanionJS。我在第41行(for循环)得到了“语法错误”,然后在第42行“'OptionValue'为空或不是对象”,在那里有对jquery.min.js文件的第19行的引用。
在此先感谢您的答复。
你能发布你的错误吗? – SenorAmor 2012-02-28 19:04:09
你得到什么样的错误信息?使用浏览器中的开发人员工具查找。 – 2012-02-28 19:04:53
我想如果它指向for循环'j'是'null'或'undefined' – ckozl 2012-02-28 19:08:55