javascript - 我可以从 "input"事件中获取什么样的信息?有没有更好的方法来跟踪文本更改?

标签 javascript jquery string algorithm events

我正在 try catch 对文本区域的更改并破译对文本所做的更改。

我这样做是为了在某种程度上复制“可标记”编辑器的行为,例如 Facebook 上的编辑器——您可以在其中“标记”您的 friend 或公共(public)页面。

我的计划是跟踪字符串输入中“标记词”的索引(一些对象包含有关“标记词”位置的数据)。因此,这意味着每当将单词/短语键入/粘贴到文本区域时,我想确切地知道文本中发生了什么变化以更新“标记词”的索引。

我遇到了一个似乎符合我需要的事件:

textAreaEl.bind("输入", function (e) {});

要继续进行此操作,我希望能够从“e”对象中找出文本中究竟发生了什么变化以触发此事件。

有没有办法破译此事件触发前后文本实际发生了什么?我试了一下,但空空如也。 (例如,在我从键盘输入内容后,它甚至是未定义的)。

此外,是否有更好的方法来跟踪较大字符串中的字符串?

最佳答案

您可以使用 string.indexOf() 找到一个字符串在另一个字符串中的位置(索引为 0)。

要查找文本区域或输入的完整文本输入,请使用 element.value

要检测文本区域何时被修改,您可以使用 addEventListener

如果您想通过更改内容的颜色等来修改文本区域的内容,那将更加困难,我什至建议使用带有 contenteditablediv 元素相反。

一些引用资料:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener

编辑:更慢地阅读您的问题,看起来您正在做的是您正在尝试查看是否可以检测到所做的更改。然而,这样做的目的似乎是您想查看添加了哪些标签,因此这成为一个 x/y 误解。

您不需要确切地检查所做的更改,您需要做的就是在每次按下新键时再次检查输入(或者甚至只检查 # 键) .不需要明确找出之前和之后的区别。

关于javascript - 我可以从 "input"事件中获取什么样的信息?有没有更好的方法来跟踪文本更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37083754/

相关文章:

javascript - jQuery 在元素上触发 mouseenter,但实际上没有真正的鼠标输入元素

javascript - 使用关闭操作在输入中添加关闭图标

c# - 显示字符串中的字符串列表

java - 将字符串数组拆分为列 java

python - 需要洞察力 : Using python I am using a regular expression to capture sample restaurant sales data to categorize and convert it to JSON from a . pdf

c# - 使用 javascript 删除 webgrid 行?

Javascript 按类选择元素,更改它们的最大高度,然后更改单击的元素最大高度

javascript - 如何确定元素是否位于视口(viewport)上方?

javascript - 将 json 放入模态

javascript - 处理损坏的 JSON 的错误