2011-12-02 23 views
2

我对JQuery很新颖。 我在一个div中有一个文本。当用户双击一个单词时,我想选择所有单词的外观。问题是我不知道如何引用选定的单词。 任何人都可以帮助我吗? 在此先感谢使用jQuery选择双击单词的所有实例

回答

0
+0

似乎与一个链接的词一起工作。似乎没有实际做OP的想法。 –

+0

您可能可以通过将DIV中的每个单词放入“链接的单词”中并对其进行样式设计,使其看起来不像链接的单词。 – Magrangs

0

有一个以前的回答这个堆栈,可以使用段落DIV进行调整。

Here

可以更改警报查找文档在其他地方的文字和突出显示它们。

3

这似乎工作:http://jsfiddle.net/f3wzT/

的代码发现双击单词,然后换行字的所有实例的跨度。可能有更好的方法来做到这一点,但正如你可以从上面的jsFiddle看到的那样,这确实奏效。

下面的代码(迅速从多个来源拼凑起来):

<script type="text/javascript"> 
    function getSelectedText() { 
     var txt = ''; 
     if (window.getSelection) { 
      txt = window.getSelection(); 
     } else if (document.getSelection) { 
      txt = document.getSelection(); 
     } else if (document.selection) { 
      txt = document.selection.createRange().text; 
     } 
     return txt; 
    } 

    function deselectText() { 
     if (window.getSelection) { 
      window.getSelection().removeAllRanges(); 
     } else if (document.getSelection) { 
      txt = document.getSelection().removeAllRanges(); 
     } else if (document.selection) { 
      txt = document.selection.empty; 
     } 

    } 

$(document).ready(function() { 
    $('#content').dblclick(function() { 
     $('.highlight').removeClass('highlight'); 
     var t = getSelectedText(); 
     var regex = new RegExp(t, "gi"); 
     this.innerHTML = this.innerHTML.replace(regex, function(matched) {return "<span class=\"highlight \">" + matched + "</span>";}); 
     deselectText(); 
    }); 

}); 
</script> 
0

这里是把一个跨度围绕每一个单词,然后重点介绍了相同的文本都跨度的样本。 http://jsfiddle.net/6xsNK/3/

$('.para').each(function() { 
    var words = $(this).text().split(' '); 
    var el = $(this).empty(); 
    $(words).each(function(i) { 
     el.append($('<span>').text(this+' ')); 
    }); 
}); 

$('.para span').dblclick(function() { 
    var t = $(this).text(); 
    var count = $('.para span').removeClass('hilite').filter(function() { return $(this).text() == t;}).addClass('hilite').size(); 
    alert(count+' match(es) found'); 
}); 
相关问题