簡體   English   中英

無法獲取未定義或空引用的屬性“ 1”

[英]Unable to get property '1' of undefined or null reference

我的網站上有一個日歷,該日歷打開一個顯示RGB顏色選擇器的彈出框。 除了IE8,它在所有瀏覽器中都可以正常工作。 我的代碼如下。

function rgb2hex(rgb) {
    rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
    function hex(x) {
        return ("0" + parseInt(x).toString(16)).slice(-2);
    }
    return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
}

這是錯誤

SCRIPT5007:無法獲取未定義或空引用的屬性“ 1”

指向這條線

return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);

我對這段代碼不熟悉,因為它是由我的工作場所中的其他人完成的,這些人已經休假了幾周。 如果有人能幫助我指出正確的方向,將不勝感激。

編輯

這是調用函數的地方。 當我在IE8中console.log(bgColor)時,它顯示為#rgb(238,238,238),所以我不明白為什么它不起作用。 也許是我愚蠢,但對於我的一生,我看不到它。

$('.period_day').click(function(e) {
    var bgColor = $(this).css('background-color');

if (rgb2hex(bgColor) == "#eeeeee") {
    $('.colour_picker').css('background-color', '#ff0000');
    $('#cal_colour_val').val('#ff0000');
} else {
    $('.colour_picker').css('background-color', bgColor);
    $('#cal_colour_val').val(bgColor);
}
});

該錯誤表示正在使用與正則表達式不匹配的參數調用rgb2hex函數。 匹配失敗將導致變量rgb為空,並且該代碼不會檢查這種可能性。

因此,真正的問題可能出在調用該函數的代碼上。

暫無
暫無

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

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