javascript - 如何在 Javascript/Jquery 中获取包含单击文本的元素?

标签 javascript jquery events jquery-events textnode

我想在单击文本时替换页面上的文本,甚至只是替换单击的单个单词。我尝试了一种自上而下的方法,选择 DOM 中的所有元素,过滤掉文本节点,用标签包装每个元素,并向每个标签添加一个单击事件处理程序。但这太慢且效率低下,特别是在非常大的动态网站上。

我只需要替换被单击的文本。是否有从 event.target 开始的自下而上的方法来做到这一点? ?如何找到最接近event.target的textNode例如?

最佳答案

在您给出的示例中,您可以执行以下操作;欲了解更多信息,请参阅 How do I select text nodes with jQuery?

$(document).click(function(event) {     
    textNodes = $(event.target).contents().filter(function() {
        return this.nodeType == 3;
    });

    textNodes.each( function() {
         $(this).replaceWith("New Text");
    });
})

关于javascript - 如何在 Javascript/Jquery 中获取包含单击文本的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15076529/

相关文章:

css - 事件管理器 'Events' 格式化

javascript - 模式选择 Java 脚本 为什么它在 Mozilla 浏览器中不起作用,而在 chrome 中却可以正常工作?

javascript - 从文本区域中删除带有换行符的方括号内的内容

javascript - Nodemailer 和 Mailgun

javascript - AngularJS - $http POST 与 Rails 3.2.3

javascript - CSS - 缩放定位元素 rel。到浏览器窗口大小

javascript - Google Contacts API - 如何仅过滤电子邮件联系人

jquery - 隐藏(不删除)所有 HTML 标签 - Jquery

events - VB6组合框事件

Angular2 - 参数 $event 隐式具有 'any' 类型