我在下面的代码中收到$("<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;
}
如何修复此错误?
答案 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
}