Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jquery/javascript在div中获取选择_Javascript_Jquery - Fatal编程技术网

如何使用jquery/javascript在div中获取选择

如何使用jquery/javascript在div中获取选择,javascript,jquery,Javascript,Jquery,有很多代码可以在页面中进行选择, 但我需要一个代码来获取div中的选择, 如果选择在my div之外,则函数必须返回空字符串 有一个jquery插件,它只适用于textarea,不适用于div 谢谢您可以使用文本选择插件- 在绑定代码中,您可以查询事件目标,查看它是否在您需要的元素中 <script type="text/javascript"> $(function() { $(document).bind('textselect', function(e)

有很多代码可以在页面中进行选择, 但我需要一个代码来获取div中的选择, 如果选择在my div之外,则函数必须返回空字符串

有一个jquery插件,它只适用于textarea,不适用于div


谢谢

您可以使用文本选择插件-

在绑定代码中,您可以查询事件目标,查看它是否在您需要的元素中

<script type="text/javascript">
    $(function() {
        $(document).bind('textselect', function(e) {
            if ($(e.target).attr("id") == "myPara") {
                alert(e.text);
            }
        });   
    });
</script>

<p id="myPara">Lorem ipsum dolor sit amet consectetuer Lorem sapien hendrerit elit Cum. Morbi Curabitur convallis sagittis vitae sem parturient augue orci tortor eget. Et porttitor eros id consectetuer est molestie tellus fames netus nec. Ullamcorper id Nam eros sed nascetur Maecenas turpis at laoreet eleifend. Lorem id parturient dapibus Aenean cursus congue justo auctor pharetra orci. Hac amet.</p>

<p id="noSelect">Lorem ipsum dolor sit amet consectetuer Lorem sapien hendrerit elit Cum. Morbi Curabitur convallis sagittis vitae sem parturient augue orci tortor eget. Et porttitor eros id consectetuer est molestie tellus fames netus nec. Ullamcorper id Nam eros sed nascetur Maecenas turpis at laoreet eleifend. Lorem id parturient dapibus Aenean cursus congue justo auctor pharetra orci. Hac amet.</p>

$(函数(){
$(document).bind('textselect',函数(e){
如果($(e.target).attr(“id”)=“myPara”){
警报(如文本);
}
});   
});

知识产权是知识产权的核心。临产前或临产后的生命矢状体僵硬。这是一个很好的例子。乌拉姆·科佩尔·纳姆·厄罗斯在拉奥里特·埃利芬德与纳塞图尔·梅塞纳斯·图皮斯会面。这是一个产房,它的主人是一个叫法雷特拉·奥奇的人。哈克·阿梅特

知识产权是知识产权的核心。临产前或临产后的生命矢状体僵硬。这是一个很好的例子。乌拉姆·科佩尔·纳姆·厄罗斯在拉奥里特·埃利芬德与纳塞图尔·梅塞纳斯·图皮斯会面。这是一个产房,它的主人是一个叫法雷特拉·奥奇的人。哈克·阿梅特

您可以使用:

var node = window.getSelection ?        
       window.getSelection().focusNode.parentNode:
       document.selection.createRange().parentElement();
获取选择结束的元素


然后,您可以确定该元素是否在您的div中。

由于冗长的边界比较,以及IE采用了与其他浏览器不同的方法,但在所有主要浏览器中都可以完成这项工作,因此这有点冗长。它还处理Firefox中的多个选择

jsFiddle:

代码:

函数GetSelectedTextInner(el){ var selectedText=“”; if(typeof window.getSelection!=“未定义”){ var sel=window.getSelection(),rangeCount; 如果((rangeCount=选择rangeCount)>0){ var range=document.createRange(); 对于(变量i=0,selRange;i 或者,您可以使用我的库,代码变成:

function getSelectedTextWithin(el) {
    var selectedText = "";
    var sel = rangy.getSelection(), rangeCount = sel.rangeCount;
    var range = rangy.createRange();
    range.selectNodeContents(el);
    for (var i = 0; i < rangeCount; ++i) {
        selectedText += sel.getRangeAt(i).intersection(range);
    }
    return selectedText;
}
函数GetSelectedTextInner(el){ var selectedText=“”; var sel=rangy.getSelection(),rangeCount=sel.rangeCount; var range=rangy.createRange(); 范围。选择节点内容(el); 对于(变量i=0;i该插件不会告诉您任何关于选择边界位置的可靠信息。谢谢。但我怎样才能在按钮点击事件中获得选择?有趣的想法。我在Chrome中得到一个空focusnode:
function getSelectedTextWithin(el) {
    var selectedText = "";
    var sel = rangy.getSelection(), rangeCount = sel.rangeCount;
    var range = rangy.createRange();
    range.selectNodeContents(el);
    for (var i = 0; i < rangeCount; ++i) {
        selectedText += sel.getRangeAt(i).intersection(range);
    }
    return selectedText;
}