如何在内容可编辑元素中获取所选元素
How to get the selected element inside a contenteditable element
我试过什么
我检查了这个问题,这个问题,问题是它给了我当前选择的内容,但我想要 dom 元素。
我想做什么
我正在寻找一种方法来获取当前正在使用javascript编辑的元素的标签名称。例如:
<article contenteditable=true>
<h2>Some List</h2>
<ul>
<li>Item 1</li>
<li>Item *caret here* 2</li>
<li>Item 3</li>
</ul>
</article>
我希望能够将列表项放入 javascript el
变量中。所以我可以做例如:
el.tagName
el.className
有谁知道如何实现这一目标?德克萨斯州:)
您可以使用
Range 来引用文档的选定部分,然后检查 commonAncestorContainer 以检索<ul>
。
在您的示例中,如果您选择列表的一部分,则可以使用以下内容检索<ul>
:
var sel = window.getSelection();
var range = sel.getRangeAt(0);
var ulTag = range.commonAncestorContainer;
如果您想获取光标指向的元素(没有选择),您可以参考 startContainer 属性,然后检查检索<li>
的parentNode
。例如:
var sel = window.getSelection();
var range = sel.getRangeAt(0);
var pointedLiTag = range.startContainer.parentNode;
请注意,这些只是简单的用例,在实际文档中有很多嵌套元素,因此在使用之前,必须确保检索的元素是预期的元素。
相关文章:
- React - 从 DOM 元素获取组件以进行调试
- 如何使用 JQuery 从相对元素获取 html 文本
- 从同一域上的 iframe 中的元素获取值
- 使用本机 Javascript 从 DOM 元素获取选择器字符串
- 使用jquery从另一个元素获取使用id的输入的id
- 如何从角度元素获取编译的节点值
- 如何为不同的元素获取不同的父类
- 从 jQuery 中的子元素获取父 tr 元素
- 当浮点部分为空时,从 JQuery 中的输入元素获取数字值不起作用
- 从 XML 元素获取文本
- 从音频元素获取音频样本
- 从所选元素 html 上方的元素获取属性值
- 使用 jQuery.data 从 dom 元素获取布尔值
- 如何通过jquery从某个元素获取部分文本
- 从输入元素获取表单和表单数据对象
- 从动态元素获取挖空视图的大小
- 从中继器循环中显示的子自定义元素获取正确的上下文.奥蕾莉亚
- 如何使用 JavaScript 或 JQuery 从输入类型=文件 html 元素获取文件名
- 从父元素获取 ID 并将它们放在数组中
- 尝试从选项元素获取 HTML