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

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
}
于 2012-05-15T10:33:15.960 に答える