0

.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 附加到文本区域可能不允许它以文本形式读取。我用谷歌搜索了这个,但找不到太多。

4

2 回答 2

0
  1. textarea 的处理方式不同。从技术上讲,它们不.val用于输入其内容。不要附加它,只需将其写入文本区域,因为我很确定您不想附加它,而是想向它写入内容。
  2. 另外,为了正确起见,也让我们转义 html。

改变这个:

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

对此:

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

jsFiddle

如果你想要变量shortcodeHTML

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

于 2013-09-11T06:20:34.807 回答
0

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

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

和正常输入的(文本框,复选框等)是这样的:

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

因此,如果我们.val()在输入时,它会工作得非常好,因为输入元素value在其中具有属性,而 textarea 的语法类似于 ' div, span, etc',因此要填充/提取 textarea 值(根据您的看法),它应该是存在于<textarea></textarea>

对于那个 jquery 有'.html() & .text()'方法。希望你清楚我们什么时候应该使用.val(), .html()/.text()方法。

于 2013-09-11T06:57:54.460 回答