我想获取用户突出显示区域中的所有元素。问题是,当元素位于树的不同部分时,我不知道如何遍历DOM的不同部分。到目前为止,我的代码只能从选择范围的startContainer中获取元素。我需要某种递归吗?这里是我的代码:如何获取突出显示的所有元素
getSelectedElementTags:function()
{
var range, sel, container;
sel = content.window.getSelection();
if (sel.getRangeAt)
{
if (sel.rangeCount > 0)
{
range = sel.getRangeAt(0);
}
}
else
{
range = content.window.createRange();
range.setStart(sel.anchorNode, sel.anchorOffset);
range.setEnd(sel.focusNode, sel.focusOffset);
alert("range created");
}
if (range)
{
container = range["startContainer"];
var elms = container.parentNode.getElementsByTagName("*");
elmlist = "parent: "+container.parentNode.tagName + " (" + elms.length + ")\n";
for (i in elms)
{
if (elms[i].tagName != null)
{
elmlist += elms[i].tagName+"\n";
}
}
alert(elmlist);
}
},
你可以使用jQuery吗?哪些浏览器必须工作(请不要全部说明,因为我怀疑支持Netscape 4)。 – 2009-09-27 05:33:55
只是Firefox,因为这是一个扩展。 – 2009-09-27 06:36:03