我想通过javascript从contentEditable div中检索文本内容。这样做有哪些选择?我尝试过innerHTML,但它不起作用。
答案 0 :(得分:39)
为什么不使用textContent:
var contenteditable = document.querySelector('[contenteditable]'),
text = contenteditable.textContent;
答案 1 :(得分:13)
不幸的是,我发现innerText
是保留可信任dom节点中换行符的唯一方法。我现在所做的(目前只在Chrome中测试过)是:
var innerText = editableDiv.innerText // using innerText here because it preserves newlines
if(innerText[innerText.length-1] === '\n')
innerText = innerText.slice(0,-1) // get rid of weird extra newline
return innerText
答案 2 :(得分:7)
使用jQuery并执行
var content = $('#my-contenteditable-div').html();
也查找这些链接:
答案 3 :(得分:5)
lblMailContent
是可编辑字段的ID。
var details= document.getElementById("lblMailContent").innerHTML;
将此代码放入clientClick
。它对我有用。
答案 4 :(得分:2)
我这样解决了,因为我需要html-input:
message = $('<div>').html(
$('#area').html()
.replace(/<(div|p|br)[^<]*?>/g, '<br />')
.replace(/<([(i|a|b|u)^>]+)>(.*?)<\/\1>/gim,
function(v) { return '' + escape(v) + ''; })
).text();
允许标签A,B,I,U并用BR替换Div和P
答案 5 :(得分:0)
使用文字内容,在大多数情况下都能正常使用
工作示例:jsfiddle
(在Safari中验证)
答案 6 :(得分:0)
使用此:
function textFromDiv(selector) {
const element = document.querySelector(selector);
const text = element.html().replace(/<div>/g,"\n").replace(/<\/div>/g,"").replace(/<br>/g,"\n");
return text;
}```