我有一个很大的问题,并试图解决它,因为几个小时但没有说话。 一切都很好,而不是IE8。
var geschlechtA= jQuery('#geschlecht').find('.active').text();
var grund_basisB= jQuery('#grund_basis').find('.active').text();
var varianteC= jQuery('#variante').find('.active').text();
var farbeD= jQuery('#farbe').find('.active span').text();
var param =[geschlechtA,grund_basisB,varianteC,farbeD];
var bildDaten=[
{"geschlecht":"männlich","basis":"Business","variante":"klassisch","farbe":"schwarz/weiss","bsrc":"mydomain/img1.jpg"},
{"geschlecht":"weiblich","basis":"Bistro","variante":"leger","farbe":"jeans/weiss","bsrc":"mydomain/img2.jpg"},
{"geschlecht":"männlich","basis":"Business","variante":"klassisch","farbe":"schwarz/weiss","bsrc":"mydomain/img3.jpg"},
{"geschlecht":"männlich","basis":"Business","variante":"klassisch","farbe":"schwarz/blau","bsrc":"mydomain/img4.jpg"},
]
var found=false;
for (var i = 0; i < bildDaten.length; i++) {
if(bildDaten[i].geschlecht==param[0]){
if(bildDaten[i].basis==param[1]){
if(bildDaten[i].variante==param[2]){
if(bildDaten[i].farbe==param[3]){
found=true;
jQuery('#image_container img').attr('src', bildDaten[i].bsrc);
}
}
}
}
};
if(!found){
jQuery('#image_container img').attr('src', bildDaten[0].bsrc);
}
我试图制作一个简单的Cloth配置器。 它在Chrome,FF,IE9 +中非常有效, 但我得到ie8以下错误:
SCRIPT5007: Für die Eigenschaft "geschlecht" kann kein Wert abgerufen werden: Das Objekt ist Null oder undefiniert
它表示属性“geschlecht”无法获取值,对象为NULL或未定义。
我怎么能这样呢?
答案 0 :(得分:2)
IE8无法正确读取尾随逗号。从bildDaten
数组中删除最后一个逗号。
还尝试将代码放在匿名闭包中。 IE有各种内置的,不可重写的对象。
(function () {
// Your code
}());
顺便说一下,没有对应if
的嵌套else
可以随时重构为&&
。
for (var i = 0; i < bildDaten.length; i++) {
if (bildDaten[i].geschlecht == param[0] &&
bildDaten[i].basis == param[1] &&
bildDaten[i].variante == param[2] &&
bildDaten[i].farbe == param[3])
{
found = true;
jQuery('#image_container img').attr('src', bildDaten[i].bsrc);
}
}