childnodes
时间: 2023-10-22 07:02:55 浏览: 37
document.documentElement、document.firstChild、document.childNodes都是用来获取HTML文档的根元素<html>节点的引用。获取div1节点下的childNodes可以使用以下代码:var div = document.getElementById('div1'),var child = div.childNodes。如果想要去除空的文本节点,可以使用以下代码:var postChild = [],for (var i = 0; i < child.length; i++) { if(!(child[i].nodeType == '3' && child[i].nodeName == '#text' && !/\S/.test(child[i].nodeValue))){ postChild.push(child[i]) } }。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
相关问题
js childnodes
在JS中,childNodes是用来获取指定元素的所有子节点的属性。它返回的是一个NodeList对象,包含了该元素的所有子节点,包括元素节点、文本节点和注释节点等。 该属性会将标签以及标签之间的空格或回车都算作一个子元素(文本节点)。因此,childNodes属性可以帮助我们获取到指定元素的所有子节点,方便进行DOM操作或者遍历子节点的操作。<span class="em">1</span>
#### 引用[.reference_title]
- *1* [JS中的childNodes节点](https://blog.csdn.net/syl2850246/article/details/82813672)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
获取contenteditable内容中光标前的childNodes
你可以通过以下代码获取 `contenteditable` 元素中光标前的 `childNodes`:
```javascript
const selection = window.getSelection();
const range = selection.getRangeAt(0);
const selectedNode = range.startContainer;
const selectedOffset = range.startOffset;
const nodesBeforeCursor = [];
if (selectedNode.nodeType === Node.TEXT_NODE) {
const textBeforeCursor = selectedNode.textContent.substring(0, selectedOffset);
const wrapper = document.createElement('div');
wrapper.innerHTML = textBeforeCursor;
nodesBeforeCursor.push(...wrapper.childNodes);
} else {
nodesBeforeCursor.push(...selectedNode.childNodes);
}
console.log(nodesBeforeCursor);
```
这段代码首先获取当前选中的文本区域,然后获取光标所在的节点和偏移量。接着,根据节点类型,将光标前的文本内容包装到一个临时的 `div` 元素中,并将其子节点添加到 `nodesBeforeCursor` 数组中。如果光标前的节点是一个元素节点,则直接将其子节点添加到 `nodesBeforeCursor` 数组中。最后,输出 `nodesBeforeCursor` 数组即可。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)