JQuery и Internet Explorer - JQuery не работает - PullRequest
0 голосов
/ 22 февраля 2011

У меня есть небольшой скрипт, который заменяет текст на изображения в зависимости от значения в настраиваемом поле Wordpress.Он отлично работает во всех браузерах, кроме IE.

Мой код:

$(document).ready(function() {
$('.CustomRow').each(function(i, e) {
    if (m = (text = $(e).text().trim()).match(re = /: +(yes|no)$/)) {
        var class = $('span', e).text().replace(/[^\w]/g, '').toLowerCase();
        $(e)
            .addClass(class)
//              .text(text.replace(re, ''))
        ;
    }

});
if ($('.levelparking').html().match(/yes/)) {
    $('.levelparking').html('<img src="/wp-content/themes/directorypress/thumbs/level_ground.jpg">');
} else {
    $('.levelparking').hide();
    }

if ($('.water').html().match(/yes/)) {
    $('.water').html('<img src="/wp-content/themes/directorypress/thumbs/water.jpg">');
}else {
    $('.water').hide();
    }

 if ($('.greywater').html().match(/yes/)) {
    $('.greywater').html('<img src="/wp-content/themes/directorypress/thumbs/grey_water.jpg">');
}else {
    $('.greywater').hide();
    }

 if ($('.blackwater').html().match(/yes/)) {
    $('.blackwater').html('<img src="/wp-content/themes/directorypress/thumbs/black_water.jpg">');
}else {
    $('.blackwater').hide();
    }

 if ($('.electric').html().match(/yes/)) {
    $('.electric').html('<img src="/wp-content/themes/directorypress/thumbs/electricity.jpg">');
}else {
    $('.electric').hide();
    }

if ($('.extranight').html().match(/yes/)) {
    $('.extranight').html('<img src="/wp-content/themes/directorypress/thumbs/xtra_night.jpg">');
}else {
    $('.extranight').hide();
    }

if ($('.dogwalks').html().match(/yes/)) {
    $('.dogwalks').html('<img src="/wp-content/themes/directorypress/thumbs/dog_walks.jpg">');
}else {
    $('.dogwalks').hide();
    }

if ($('.realales').html().match(/yes/)) {
    $('.realales').html('<img src="/wp-content/themes/directorypress/thumbs/real_ales.jpg">');
}else {
    $('.realales').hide();
    }

    if ($('.busstop').html().match(/yes/)) {
    $('.busstop').html('<img src="/wp-content/themes/directorypress/thumbs/bus_stop.jpg">');
}else {
    $('.busstop').hide();
    }

    if ($('.wifi').html().match(/yes/)) {
    $('.wifi').html('<img src="/wp-content/themes/directorypress/thumbs/wifi.jpg">');
}else {
    $('.wifi').hide();
    }


});

Я получаю следующее сообщение об ошибке в IE Developer Tools:

ОжидаетсяИдентификатор - строка 4, символ 17.

Это относится к этой строке:

var class = $('span', e).text().replace(/[^\w]/g, '').toLowerCase();

Есть идеи, почему это происходит?

Заранее спасибо

Ответы [ 4 ]

3 голосов
/ 22 февраля 2011

class - это зарезервированное ключевое слово в Javascript (ECMAScript), используйте другое имя переменной.

Причина, по которой он работает в некоторых браузерах, заключается в том, что в некоторых ситуациях они позволяют использовать некоторые ключевые слова в качестве идентификаторов. Естественно, вам вообще не следует использовать ключевые слова в качестве идентификаторов.

3 голосов
/ 22 февраля 2011

"var class", скорее всего, проблема, потому что class является зарезервированным ключевым словом в IE.

Решение - использовать другое имя переменной.

0 голосов
/ 22 февраля 2011

$('span', e) - ноль, следовательно, он не будет работать.Разместите HTML или пример jsfiddle.

0 голосов
/ 22 февраля 2011

Моя ставка будет на регулярное выражение.Возможно, вы захотите углубиться в поддержку регулярных выражений в IE и убедиться, что она немного не отличается от других браузеров ... как это часто бывает в IE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...