我得到一个'这不是函数'错误

时间:2012-05-15 12:30:54

标签: javascript jquery dom

我在下面的代码中收到$("<div/>").text(value).html is not a function错误:

function htmlEncode(value) { 
    return $('<div/>').text(value).html(); 
}

function startImageUpload(imageuploadform, imagefilename){

    $('.imagef1_cancel').eq(window.lastUploadImageIndex).html(
        '<div>' + 
        htmlEncode(imagefilename) + 
        '<button type="button" class="imageCancel" cancel_image_file_name="' + 
        imagefilename + 
        '">CANCEL</button></div>'
    );

    return true;
}

如何修复此错误?

奇怪的是我下面有类似的代码,但功能不同(stopImageUpload),代码工作正常如下:

 function htmlEncode(value) { 
        return $('<div/>').text(value).html(); 
    }

    function stopImageUpload(success, imagefilename) {
        imagecounter++;
        $('.listImage').eq(window.lastUploadImageIndex).append(
            '<div>' + 
            htmlEncode(imagefilename) +
            '<button type="button" class="deletefileimage" image_file_name="' +
            imagefilename + 
            '">Remove</button><br/><hr/></div>'
        ); 

        return true;   
    }

链接到应用程序以查看正在发生的事情:application

2 个答案:

答案 0 :(得分:3)

$('<div/>').html(value); //without text function

答案 1 :(得分:1)

function htmlEncode(value) { 
    return $('<div/>').text(value).html(); 
}

如果上述代码段中的valueundefined,则text()会返回DOM元素的文本内容,而不是元素本身,从而导致链式调用失败。