我在下面的代码中收到$("<div/>").text(value).html is not a function 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><br/><hr/></div>'
);
$('.imagef1_cancel').eq(window.lastUploadImageIndex)
.find(".imageCancel")
.on("click", function(event) {
var cancel_image_file_name = $(this).attr('cancel_image_file_name');
console.log(cancel_image_file_name)
jQuery.ajax("cancelimage.php?imagefilename=" + cancel_image_file_name)
return stopImageUpload(2, cancel_image_file_name);
});
return true;
}
但是我没有得到iis,它与下面的代码非常相似。
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>'
);
var _imagecounter = imagecounter;
$('.listImage').eq(window.lastUploadImageIndex)
.find(".deletefileimage")
.on("click", function(event) {
var image_file_name = $(this).attr('image_file_name');
jQuery.ajax("deleteimage.php?imagefilename=" + image_file_name)
.done(function(data) {
$(".imagemsg" + _imagecounter).html(data);
}
);
$(this).parent().remove();
}
);
return true;
}
为什么会这样,以及如何修复错误?
答案 0 :(得分:1)
我猜测,从那个错误中,你在某个时候将jQuery对象传入你的方法htmlEncode()。
当你使用jquery的文本方法时,它需要是文本或可以解释为文本的东西。 (例如,输入一串HTML并将其解释为普通字符串)
看看这个jsFiddle
或者只是把它放到你的控制台:
$('<div/>').text($('<div/>')).html()
我认为您的错误实际上来自您调用“startImageUpload”的位置以及您传递给它的内容。我必须看到你的其余代码才能确定。