javascript - 如何使用 JavaScript 获取光标下的单词?

标签 javascript browser dom-events mouse-cursor

例如,如果我有

<p> some long text </p>

在我的 HTML 页面上,我如何知道鼠标光标位于“文本”一词上方?

最佳答案

除其他两个答案外,您还可以使用 jQuery(或一般的 javascript)将段落分成多个片段。

这样一来,您就无需考虑输出带有单词周围跨度的文本。让您的 JavaScript 为您完成。

例如

<p>Each word will be wrapped in a span.</p>
<p>A second paragraph here.</p>
Word: <span id="word"></span>

<script type="text/javascript">
    $(function() {
        // wrap words in spans
        $('p').each(function() {
            var $this = $(this);
            $this.html($this.text().replace(/\b(\w+)\b/g, "<span>$1</span>"));
        });

        // bind to each span
        $('p span').hover(
            function() { $('#word').text($(this).css('background-color','#ffff66').text()); },
            function() { $('#word').text(''); $(this).css('background-color',''); }
        );
    });
</script>

请注意,上面的代码虽然有效,但会删除段落标签内的所有 html。

jsFiddle example

关于javascript - 如何使用 JavaScript 获取光标下的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444430/

相关文章:

javascript - AngularJS - 在前端显示数组值

javascript - 将两个单独的数组与对象合并为一个数组

Javascript 动态添加事件监听器和节点引用

javascript - 尝试在页面卸载时执行一系列操作,但页面卸载速度太快,无法完成这些操作

javascript - 当我使用 Javascript 的 Onkeyup 事件处理程序时触发未知事件

javascript - 为什么选择范围的边框比实际选择的文本宽?

javascript - PHP Laravel 如何选择请求日期位于两个日期之间?

javascript - URL 哈希片段中的双正斜杠是否可以

java - 小程序是否使用浏览器进行 HTTP 请求?

visual-studio-2010 - Azure 1.4/VS 2010 默认 Web 浏览器