javascript - 使用链接多次选择文本

标签 javascript html

我在网上找到了以下代码,效果很好。我想在同一页面上的多个元素上使用它,但不知道如何执行此操作。我可以让第一个工作,但不能让第二个工作。

有人可以帮忙吗?

谢谢

约翰

Javascript:

    function SelectText(element) {
    var doc = document
        , text = doc.getElementById(element)
        , range, selection
    ;    
    if (doc.body.createTextRange) {
        range = document.body.createTextRange();
        range.moveToElementText(text);
        range.select();
    } else if (window.getSelection) {
        selection = window.getSelection();        
        range = document.createRange();
        range.selectNodeContents(text);
        selection.removeAllRanges();
        selection.addRange(range);
    }
}

document.onclick = function(e) {    
    if (e.target.className === 'select') {
        SelectText('some_text');
    }
};

HTML:

<span id ='some_text'>Text to select </span><span class='select'>select</span>

<span id ='more_text'>More text to select</span><span class='select'>select</span>

最佳答案

因为你调用具有相同参数的函数。

SelectText('some_text');

无论您点击哪个 class="select",“要选择的文本”都会被选中。

试试这个代码:

function SelectText(element) {
    var doc = document
    , text = doc.getElementById(element)
    , range, selection;    
    if (doc.body.createTextRange) {
        range = document.body.createTextRange();
        range.moveToElementText(text);
        range.select();
    } else if (window.getSelection) {
        selection = window.getSelection();        
        range = document.createRange();
        range.selectNodeContents(text);
        selection.removeAllRanges();
        selection.addRange(range);
    }
}

document.onclick = function(e) {    
    if (e.target.className === 'select') {
        SelectText(e.target.getAttribute('data-id'));
    }
};

并更改 HTML:

<span id ='some_text'>Text to select </span><span class='select' data-id="some_text">select</span>

<span id ='more_text'>More text to select</span><span class='select' data-id="more_text">select</span>

关于javascript - 使用链接多次选择文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28783029/

相关文章:

javascript - 为 web 使用 Windows Aero Window Color

html - Foundation 6 顶部栏菜单图标

javascript - 更改可折叠菜单中的箭头方向?

javascript - RFC 2822 和 ISO 8601 日期格式正则表达式

javascript - 调试 Node.js Azure 函数

javascript - 通过 Promise.all 回调几个 API Endpoint 来调度 Redux Action

javascript - angularjs 表单重置错误

javascript - 根据按下的按钮显示 div

javascript - 为什么jQuery或诸如getElementById之类的DOM方法找不到元素?

php - Float left 在 Drupal 表单中无法正常工作