0

$("<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;
}

如何修复此错误?

4

3 回答 3

4

的输出

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

是一个字符串而不是一个 Jquery 对象。

你试过这个吗

$($('<div/>').text(value)).html();
于 2012-05-15T10:32:46.307 回答
2

该代码本身可以正常工作:

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

您应该检查发送给函数的字符串中是否有任何奇怪的东西,这可能会弄乱所创建的代码。虽然我尝试了一些不同的值,但您可以轻松地破坏生成的标记(因为您只在一个地方对值进行 html 编码,而不是在另一个地方),但是htmlEncode无论您向它抛出什么,该函数似乎仍然可以在没有错误消息的情况下运行。

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

alert($().html);
于 2012-05-15T10:58:11.733 回答
0

我不确定你想要什么,但错误肯定在这一行

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

如果您想将该图像值包装在一个 div 中,只需使用 |

function htmlEncode(value) { 
    return '<div><img src="'+value+'"/></div>'; //wrapping  it as an image most probably you want this
}
于 2012-05-15T10:33:15.960 回答