Escaping text with jQuery append?

前端 未结 3 1251
我在风中等你
我在风中等你 2020-12-18 19:31

I know that I can use $.html to set the HTML content of something, and $.text to set the content (and that this escapes the HTML).

Unfortun

3条回答
  •  轮回少年
    2020-12-18 19:52

    If you really want to get jQuery to escape some text to an HTML fragment and don’t want to touch document directly yourself, the following pure jQuery can escape text to HTML for you (but only in an HTML context):

    jQuery('

    ').text('v & M_FLAG == M_FLAG').html()

    This can be used to append text quite inefficiently:

    jQuery('#message').append(jQuery('

    ').text(item).html());

    There will be no extra

    element inserted because .html() returns the HTML-formatted contents of an element, excluding the element itself.

    Based on jQuery’s lack of a built-in way to instantiate text nodes, I think jQuery’s authors expect users to directly use document.createTextNode() as shown in an earlier answer.

提交回复
热议问题