大写--文本区域中的文本选择
Upper case a selection of text in a textarea
当我尝试运行以下代码时,我得到了一个undefined is not a function
错误:
$(document).ready(function() {
$("#textarea").select(function() {
var selection = window.getSelection();
$("#upper").click(function() {
// alert(selection);
var upper = selection.toUpperCase();
var text = $("#textarea").text();
$("#textarea").html(text.replace(selection, upper));
});
});
});
我正在尝试从文本区域中选择文本,然后单击按钮使所选内容大写。以下是完整代码的JSFiddle。
getSelection
返回一个对象。你需要给toString()
打电话。
$(document).ready(function () {
var selection;
$("#textarea").select(function () {
selection = window.getSelection().toString();
});
$("#upper").click(function () {
if (selection) {
var upper = selection.toUpperCase();
var text = $("#textarea").text();
$("#textarea").html(text.replace(selection, upper));
}
});
});
JSFiddle:http://jsfiddle.net/TrueBlueAussie/8syb2d8j/4/
注意:
- 事件处理程序嵌套(通常是个坏主意)
- 我添加了一个检查,以确保在尝试提高其大小之前有一个选择
- 由于您高亮显示的文本可能不止一个,因此使用
replace
实际上不是一个好的解决方案。试着突出显示第二个i
,看看我的意思。您应该使用选择对象的属性来计算所选字符串的确切部分
在浏览了可移植的解决方案后,我发现了jQuery TextRange插件,基于演示,它已经足够解决这个问题了。
相关文章:
- 或者在表单上选择默认选项文本(选择1)
- Javascript:包括特殊字符的文本选择
- 大写--文本区域中的文本选择
- 点击
- 项目时的文本选择
- 通过 javascript 在每次点击时动态禁用文本选择
- 文本框的 CSS 文本选择覆盖
- 单击“img”源时,文本选择未清除
- 链接内的内容可编辑块,如何防止重定向,但让文本选择插入符号位置更改
- 当我单击画布并拖动鼠标时,光标将变为文本选择光标.我该如何防止这种情况发生
- 重新启用文本选择(Opera、webkit等)
- 绝对元素后面的元素上的文本选择
- 禁用JavaScript中的文本选择器
- 从网站中删除文本选择限制的脚本
- Javascript/jQuery Load 函数,文本选择
- HTML 浏览器的“文本”选择:选择整个单词(如在 iBooks 中)
- 锁定页面文本选择
- 如何删除文本选择中的子元素
- 如何将选定的“文本”选择框发送到按钮上的函数,以便使用角度进行 ng 单击
- 锤击.JS桌面文本选择和滑动冲突
- j查询启用/禁用文本选择错误