使用jquery .select()获取高亮显示的文本?

时间:2012-08-31 08:53:34

标签: jquery

我在尝试http://api.jquery.com/select/

中找到的示例代码
$(":input").select( function () { 
      $("div").text("Something was selected").show().fadeOut(1000); 
    });

现在我的问题是不是打印“选择了某个东西”,我可以获得精确选择的文字吗?

我想要jquery .select()具体的答案。我从here

获得了其他解决方案

3 个答案:

答案 0 :(得分:10)

.select()与检索实际选定的文本无关。 Select就像.click()一样:将处理函数绑定到select事件的简便方法。

它在the API docs中说:

  

检索当前所选文本的方法因浏览器而异。许多jQuery插件提供跨平台解决方案。

因此,您与element.select(...)(或更好,element.on("select", ...))绑定,然后使用众多跨平台解决方案之一来检索选择。这是基本的想法:http://jsfiddle.net/NjW5a/3/

答案 1 :(得分:5)

.Select()似乎只是一个事件,将触发选择该特定元素。但是,要获取文本,您需要使用javascript的 window.getSelection()函数。

以下是一个示例:http://jsfiddle.net/BCv4Y/3/

    $(":input").select( function () { // on selection, show what's selected
        $("div").text(window.getSelection()).show().fadeOut(1000); 
     }

});

也许,如果新版本的jquery带有类似 $(this).selectedVal()的东西,那将会很棒。希望有所帮助

答案 2 :(得分:0)

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

 } else return;

 }
</script>