首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于Javascript中选定文本的nodeName

用于Javascript中选定文本的nodeName
EN

Stack Overflow用户
提问于 2010-09-24 13:16:15
回答 1查看 914关注 0票数 1

我有HTML,它看起来如下所示:

代码语言:javascript
复制
<span id="text">
 <span class="segment" id="first">some text</span>
 <span class="segment" id="sec">bla bla</span>
</span>

当用户选择某项内容时,我想确定他选择了哪些元素。例如,如果用户选择了"text bl“,我需要"first”和"sec“元素。

为此,我尝试使用endContainer.nodeName,但是对于每一个选定的文本,我都会得到父元素" text“。获得子元素是可行的吗?

代码语言:javascript
复制
var selObj = window.getSelection();
    var selRange = selObj.getRangeAt(0);
    if(selRange!="") {
    var startName = selRange.startContainer.nodeName;
    var endName = selRange.endContainer.nodeName;
    alert(startName+" "+endName);
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-24 13:22:22

在您的示例中,问题是选择的开始和结束容器节点是文本节点。您可以通过检查nodeType属性获得容器元素:

代码语言:javascript
复制
var startNode = selRange.startContainer;
if (startNode.nodeType == 3) { // 3 is the node type for text nodes
    startNode = startNode.parentNode;
}

..。最后的容器也是如此。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3787431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档