文本区域阅读HTML不是文本?

时间:2013-09-11 05:42:12

标签: jquery

.append由一些jQuery创建的字符串,该字符串生成HTML标记,当我将其插入到firebug中显示的文本区域时,但不会显示在实际的文本区域中。我假设它正在这样做,因为它将其读作HTML而不是文本。

这是一个例子。

    var classesHtmlString = jQuery(".generator-attr:checked").map(function () {
    var $this = jQuery(this);
        return $this.val();  
    }).get().join(" "); 

    var htmlString = '<div class="'+classesHtmlString+'">';

    jQuery('#generator-html-result').val(htmlString);

    var shortcodeHTML = jQuery('#generator-html-result').val();

然后我.append到我想要的文本区域,如果有必要,我会提供更多,但我认为将HTML添加到文本区域不允许它将其作为文本读取。我用谷歌搜索了但找不到多少。

2 个答案:

答案 0 :(得分:0)

  1. textarea的处理方式不同。从技术上讲,它们不会使用.val来输入内容。不要附加它,只需将其写入textarea,因为我很确定你不想附加它,你想要写内容。
  2. 另外,为了正确起见,我们也可以转义html。
  3. 改变这个:

    jQuery('#generator-html-result').val(htmlString);
    

    对此:

    jQuery('#generator-html-result').text(htmlString).html();
    

    jsFiddle

    如果你想要变量shortcodeHTML

    var shortcodeHTML = jQuery('#generator-html-result').text(htmlString).html();

答案 1 :(得分:0)

Jquery在内部使用了elements属性,所以如果我们这样做,那么textarea是这样的:

<textarea id="foo">HTML TEST</textarea>

和普通输入(文本框,复选框等)如:

<input type="text" id="bar" value="HTML TEST AGAIN"/>

因此,如果我们在输入时.val(),它将完美地工作,因为输入元素中包含value属性,而textarea的语法类似于'div,{{1} },等等,所以要填充/提取textarea值(根据你的感知),它应该出现在span

之间

因为jquery有<textarea></textarea>个方法。希望您清楚何时我们应该使用'.html() & .text()'方法。