有没有办法对 HTML 表格中的所有元素进行选择突出显示?
我希望能够以表格形式显示数据,并且用户能够单击按钮来选择相关数据以复制并粘贴到他们选择的电子表格中。
有没有办法对 HTML 表格中的所有元素进行选择突出显示?
我希望能够以表格形式显示数据,并且用户能够单击按钮来选择相关数据以复制并粘贴到他们选择的电子表格中。
试试这个:
function selectAll(parentNode) {
var sel;
// IE
if (document.selection) {
sel = document.body.createTextRange();
sel.moveToElementText(parentNode);
sel.select();
} else {
sel = document.createRange();
sel.setStartBefore(parentNode);
sel.setEndAfter(parentNode);
window.getSelection().addRange(sel);
}
}
selectAll(document.getElementById('myTable'));
在这里测试一下。
当我为选择数据的 API 编写抽象时,我写了以下注释。您可能会发现各种 URL(我在评论中引用过)很有用。
此接口不基于 W3C 标准。相反,它基于来自各种浏览器的事实上的接口。它表示调用 javascript window.getSelection() 方法时返回的对象,如 http://www.quirksmode.org/dom/range_intro.html中所述
此接口的 MS IE 版本是 Microsoft API 中“选择”对象的类型,可通过 http://www.google.ca/search?hl=en&q=html+and+dhtml+reference找到
然而,这个接口更多地基于 Mozilla API(而不是 MS IE API)。Mozilla 界面位于 http://mxr.mozilla.org/mozilla/source/content/base/public/nsISelection.idl 和 https://developer.mozilla.org/en/DOM/Selection
如果您使用像 jquery 这样的 Javascript 库,则可能会为您隐藏/抽象浏览器特定的差异并为您提供统一的 API。
由于大多数浏览器已经通过让用户手动选择文本来提供此功能,为什么不向用户提供一个链接以下载 Excel 兼容格式的数据,例如 CSV?例如,如果您有足够的数据需要分页,这是一个更强大的解决方案。