如何获取所选锚文本的标记名称及其 href
How to get the tagname and its href of selected anchor text
当我在段落中选择一个链接(没有ID或类)时,我需要获取选定的链接href值。如何在jQuery中做到这一点? 我正在使用document.getSelection()
方法。但是我在document.getSelection()
中没有看到任何返回 href 值的方法。
当我通过拖动鼠标选择链接时,我能够获得如下所示的 href 值。
currentLink = document.getSelection().anchorNode.parentElement.href;
但是当我通过双击文本选择链接时,上面的命令不会返回 href 值。请帮忙。
在这里,我给你写了一些东西来帮助你入门。它比原始代码更跨浏览器:
(function(AnchorSelector, $, undefined) {
AnchorSelector.getAnchorHrefs = function(e) {
var container = '';
if (window.getSelection) {
var sel = window.getSelection();
if (sel.rangeCount) {
var div = $('<div>');
for (var i = 0, len = sel.rangeCount; i < len; ++i) {
div.append(sel.getRangeAt(i).cloneContents());
}
container = div;
}
} else if (document.selection) {
container = $('<div>').append(document.selection.createRange().htmlText);
}
var arr = $.map(container.find('a'), function(n, i) {
return ($(n).attr('href'));
});
if (arr.length) {
alert(arr.join(','));
}
// Note: you can check e.type to see if it was a 'dblclick' or a 'mouseup'
// you may need to employ some type of debouncing to not get two alerts
// when you double click the text
}
$(function() {
$(document)
.dblclick(AnchorSelector.getAnchorHrefs)
.mouseup(AnchorSelector.getAnchorHrefs);
});
})(window.AnchorSelector = window.AnchorSelector || {}, jQuery);
这是一个jsFiddle演示。
相关文章:
- 名称href标签根据用户文本输入JavaScript
- 如何使用 jQuery 替换文本中的 HREF 链接
- 如何使用Javascript更改href和html文本
- 使用php使用href链接将输入的文本框值传递到另一个页面
- CSS/JS:如何在悬停时显示文本,并显示点击href的文本框
- Javascript/jQuery链接/href补充的动态文本
- 使用javascript将href文本分解为多行
- 将文本框数据传递到JavaScript窗口.location.href
- 如何在jquery中替换Anchore标签href中的一些文本
- 制作不带 href 的过渡文本
- 如何获取所选锚文本的标记名称及其 href
- 将 href 值替换为 asp.net 中的标签文本
- 引导按钮组以动态更改文本、HREF 和图标 - JQuery
- 使用 .innerHTML 设置文本并更改 href
- 使用 Javascript 替换 HTML 中的 href 文本
- 替换 href 属性中文本的值
- 删除 href 周围的文本的正确 jquery 函数是什么
- IE8 中的 jQuery Change attr href 会更改文本
- 使用Javascript将href文本替换为其他内容
- Javascript初学者:如果href文本与指定字符串匹配,如何替换它