Javascript 如何在documentFragment中获取子节点?

Javascript 如何在documentFragment中获取子节点?,javascript,html,extjs,extjs4,Javascript,Html,Extjs,Extjs4,我需要知道我提取的内容是否有跨度 简单js部件,从textarea获取选择: ... selection = this.getWin().getSelection().getRangeAt(0); content = selection.extractContents(); alert(content)// this gets documentFragment alert(content.firstChild)//null fontEl = document.createElement ("sp

我需要知道我提取的内容是否有跨度

简单js部件,从textarea获取选择:

...
selection = this.getWin().getSelection().getRangeAt(0);
content = selection.extractContents();
alert(content)// this gets documentFragment
alert(content.firstChild)//null
fontEl = document.createElement ("span")
fontEl.appendChild(content);
alert(fontEl.outerHTML)// works ok. but now i have 2 spans if there was one before append
这是我的护照。我测试更改字体大小。它可以工作,但由于这个问题,它正在滥发信息。

您的代码就在眼前。这里有一个更新的演示:

以下是相关的代码:

var font_size = combo.getValue();
var selection = this.getWin().getSelection();
if (selection.rangeCount > 0) {
    var range = selection.getRangeAt(0);
    var content = range.extractContents();
    var fontEl = this.getWin().document.createElement("span");
    fontEl.style.fontSize = font_size + 'px';
    fontEl.appendChild(content);
    range.insertNode(fontEl);
    selection.selectAllChildren(fontEl);
}

你的代码离我们不远了。这里有一个更新的演示:

以下是相关的代码:

var font_size = combo.getValue();
var selection = this.getWin().getSelection();
if (selection.rangeCount > 0) {
    var range = selection.getRangeAt(0);
    var content = range.extractContents();
    var fontEl = this.getWin().document.createElement("span");
    fontEl.style.fontSize = font_size + 'px';
    fontEl.appendChild(content);
    range.insertNode(fontEl);
    selection.selectAllChildren(fontEl);
}

如果DocumentFragment的firstChild为null,则与任何其他节点一样,没有子节点。但是如果html片段为:test?那么firstChild是否应该返回div?我似乎已经投了反对票,尽管我并不打算也不记得这样做,而且在我的声誉历史上也没有a-1的迹象。如果你编辑你的问题,那么我可以删除我明显的否决票。否决票删除。很抱歉。如果DocumentFragment的firstChild为null,则与任何其他节点一样,没有子节点。但是如果html片段为:test?那么firstChild是否应该返回div?我似乎已经投了反对票,尽管我并不打算也不记得这样做,而且在我的声誉历史上也没有a-1的迹象。如果你编辑你的问题,那么我可以删除我明显的否决票。否决票删除。很抱歉。但是它滥发了很多空的html标签。我怎样才能修复它呢?谢谢,尽管它比我的好,但我需要修复文本上的垃圾邮件标签。检查HTML源代码按钮以查看。按钮是右边的第二个。@Feanor:那更棘手。您将需要一种更微妙的方法,包括与DOM进行更密切的交互。这是不平凡的,但它滥发了很多空的html标签。我怎样才能修复它呢?谢谢,尽管它比我的好,但我需要修复文本上的垃圾邮件标签。检查HTML源代码按钮以查看。按钮是右边的第二个。@Feanor:那更棘手。您将需要一种更微妙的方法,包括与DOM进行更密切的交互。这不是小事。