$(“<div>”)。text(value).html不是函数错误</div>

时间:2012-05-15 10:28:20

标签: 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;
}

如何修复此错误?

3 个答案:

答案 0 :(得分:4)

的输出
$('<div/>').text(value)

是String而不是Jquery对象。

你试过这个吗?

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

答案 1 :(得分:2)

代码本身很好用:

http://jsfiddle.net/Guffa/aae24/

您应检查发送到函数的字符串中的任何奇怪内容,这可能会破坏创建的代码。我已经尝试了一些不同的值,你可以很容易地破坏生成的标记(因为你只在一个地方html编码值,而不是另一个),但htmlEncode函数似乎仍然没有错误消息运行你扔了它。

您还可以检查$.html属性是否仍然是一个函数,这样您就不会在某处意外更改它。字符串值返回功能代码:

alert($().html);

答案 2 :(得分:0)

IM不确定你想要的,但肯定错误在这一行

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

如果要将该imagevalue包装在div中,只需使用|

即可
function htmlEncode(value) { 
    return '<div><img src="'+value+'"/></div>'; //wrapping  it as an image most probably you want this
}