点击事件时,我必须将文本区域中突出显示的文本保存到数据库中 我该怎么做。我从中找到了一些代码,但这对我不起作用。
$('#send').on("click", function(){
ShowSelection();
});
function ShowSelection()
{
var textComponent = $('#my-content span').val();
console.log(textComponent);
var selectedText;
if (textComponent.selectionStart !== undefined)
{// Standards Compliant Version
var startPos = textComponent.selectionStart;
var endPos = textComponent.selectionEnd;
selectedText = textComponent.value.substring(startPos, endPos);
}
else if (document.selection !== undefined)
{// IE Version
textComponent.focus();
var sel = document.selection.createRange();
selectedText = sel.text;
}
alert("You selected: " + selectedText);
}
答案 0 :(得分:0)
您的代码有很多错误:
borderOnForeground
和selectionStart
是表单元素(输入,文本区域)的属性,但是selectionEnd
显然在寻找$('#my-content span')
元素。
<span>
将返回一个字符串(在输入的情况下,该字符串是该输入的值,但在您的情况下,该字符串将为空,因为您将其应用于span元素。
$('#my-content span').val()
:由于textComponent.selectionStart
是字符串而不是HTML元素,因此textComponent
上没有属性selectionStart
。
-
textComponent
元素(see here)的工作示例:
<textarea>
var startPos = $('textarea')[0].selectionStart
// etc.
元素(see here)的工作示例:
<span>