簡體   English   中英

jQuery和Internet Explorer-jQuery不起作用

[英]JQuery and Internet Explorer - JQuery not working

我有一個小腳本,可根據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開發人員工具中收到以下錯誤消息:

預期標識符-第4行,字符17。

這與以下行有關:

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

知道為什么會這樣嗎?

提前致謝

因為在IE中class是保留關鍵字,所以"var class"最有可能是問題所在。

解決方案是使用另一個變量名。

class是Javascript(ECMAScript)中的保留關鍵字 ,請使用其他變量名稱。

它在某些瀏覽器中起作用的原因是在某些情況下它們允許某些關鍵字作為標識符。 自然,您根本不應使用關鍵字作為標識符。

我的賭注將放在正則表達式上。 您可能想深入了解IE的正則表達式支持,並確保它與其他瀏覽器沒有太大區別……就像IE經常遇到的那樣。

$('span', e)為null,因此將不起作用。 發布HTML或jsfiddle示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM