jQuery : get html source of selected text in div

标签 jquery

我想获取 div 中选择文本的 HTML 源并发出警报。

这是我的代码:

if (!window.x) {
    x = {};
}
x.Selector = {};
x.Selector.getSelected = function() {
    var t = '';
    if (window.getSelection) {
        t = window.getSelection();
    } else if (document.getSelection) {
        t = document.getSelection();
    } else if (document.selection) {
        t = document.selection.createRange().text;
    }
    return t;
}

$(function() {

    $(document).bind("mouseup", function() {
        var mytext = x.Selector.getSelected();
        alert(mytext);
    });

Source

但是返回纯文本。

有什么办法吗?

感谢您的帮助。

最佳答案

http://www.codingforums.com/showthread.php?t=154848#post762994建议如下:

function selHTML() {

    if (window.ActiveXObject) {
        var c = document.selection.createRange();
        return c.htmlText;
    }

    var nNd = document.createElement("p");
    var w = getSelection().getRangeAt(0);
    w.surroundContents(nNd);
    return nNd.innerHTML;
}

Google 很好(通常情况下):-)

演示:http://jsfiddle.net/rR8Sh/1/ 我添加了纯文本选择,以防标签未完全选择并使用 span 而不是 p以避免添加换行符。它仍然会添加空的 <span>尽管;我想不出有什么办法可以避免这种情况。

关于jQuery : get html source of selected text in div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10055806/

相关文章:

javascript - jQuery Tablesorter 插件不适用于表体中的行跨度

javascript - Jquery 函数在加载时被调用

jquery - 将数组与 DIV 中的文本进行匹配

javascript - 复选框不勾选

jquery - 为什么点/导航按钮在使用 owlcarousel 时不可见?

javascript - jQuery 不调用警报框

javascript - 如何使用本地存储将我的输入框值存储到另一个输入框

javascript - 检测窗口调整大小并使用 jquery 执行功能

javascript - AngularJS 完成后执行 Javascript/jQuery

.append() 之后的 JQuery Lazyload 图像