我有一个包含可变html内容的textarea,它始终包含在段落(p)标记中。
HTML(在追加之前):
<textarea rows='7' class='form-control' id='comments'><p>My variable HTML content.</p></textarea>
我在jQuery中使用以下内容获取此内容:
jQuery:
$('#comments').val();
现在我需要在本段末尾添加HTML,但在p标签内。
HTML(追加后):
<textarea rows='7' class='form-control' id='comments'><p>My variable HTML content. Some appended HTML.</p></textarea>
我当然可以替换上面的最后4个字符(这是关闭的p标签),然后附加我的HTML,然后再次添加结束p标签。 有人能告诉我是否有更好的方法在jQuery中实现相同的目标?
提前非常感谢蒂姆。答案 0 :(得分:4)
将textarea的字符串值解析为HTML,并插入您喜欢的任何内容,然后传回HTML的字符串值
$('#comments').val(function(_, val) {
return $('<div />', {html:val}).find('p').append('content').end().html();
});
答案 1 :(得分:2)
这可以解决问题
var html = $('#comments').val();
$('#comments').val(
$(html).append(' Some appended HTML.')[0].outerHTML
);
答案 2 :(得分:0)
确定。我真的很喜欢这个!
$('#comments').text($($('#comments').text()).append(' a new insert!').text());
不要看太长时间。可能会伤到你的眼睛: - )
答案 3 :(得分:0)
您可以将值插入临时div,将元素添加到临时div中的<p>
- 元素并再次获取更新的内容:
var tmpDiv = $('<div></div>'); //create temporary element
tmpDiv.html($('#comments').val()); // add HTML from textarea
$(someHtml).appendTo($('p', tmpDiv)); // append custom HTML to P inside temp element
newTextAreaValue = tmpDiv.html(); // retrieve new value