得到单词点击段落

我有一个HTML文档,其中包含大约30,000个单词。

我希望能够在用户点击任何单词时执行某些操作。 为了简单/概念,我只想alert()那个词。

例如,在段落中,如果我点击“有”它应该运行alert("have")

我正在使用jQuery。

 var p = $('p'); p .html(function(index, oldHtml) { return oldHtml.replace(/\b(\w+?)\b/g, '$1') }) .click(function(event) { alert(event.target.innerHTML) }); 

我考虑了巴勃罗·费尔南德斯的建议。

在jsFiddle上看到它 。

更新

那么,这是否具有高效性(例如,它不会冻结慢用户的浏览器?)另外,你能详细说明event.target是如何工作的吗?

它可能会很好地减慢30,000字的页面性能。 我认为这是过度的,可能会受益于分页,但我不知道你的具体情况。

event.target属性保存启动事件的元素 – 事件冒泡/传播到其父级,然后父级处理事件,因此您在单独的span元素上没有30,000个事件。

不幸的是,我认为你需要处理文本并在每个单词周围添加 YOUR_WORD

然后:

 $(".clickableWord").click( function(this){alert(this.text());} ); 

尝试使用绝对定位来定位单词的任何方法都容易出现缩放,字体大小等问题。

这里已经解决了在HTML元素中单击位置获取文本

HTML doc是静态还是您正在生成它? 如果你正在生成它,那么在每个单词周围添加这些标签应该太难了。

如果您需要在事实之后对现有HTML执行此操作,那么这有点困难。 选择包含大多数单词的元素(可能是div或p)并将这些单词读入数组。 然后重新输出它们,然后是那些span标签

我看到的派对有点晚了。

试一试。

 init() function init() { addListeners(); adjustText(document.getElementById("text")); } function addListeners() { document.body.onclick = clicked; } function adjustText(holder) { text = holder.innerHTML.split(" "); holder.innerHTML = ""; for(var i=0;i 

http://jsfiddle.net/AdwCA/2/

我没有通过代码来发布它是如何完成的,但实际上这是在这里完成的,没有在句子中插入任何额外的span或其他元素。

http://www.wordreference.com/enit/something