如何确定在父元素的开头或结尾处是否存在文本?HTML DOM和JavaScript

经常含咖啡因

假设我们有一个嵌套范围:

<span><span></span></span>

我们想知道文本是否存在

<span> here <span> </span></span>

或者

<span><span></span> here</span>

假设我们已经引用了父元素节点。

请注意

<span> text <span> text </span> text </span>

或者

<span> text <span> text </span></span>

有两种完全可能的情况。

用户名

不应该比这难得多

node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE || 
  node.lastChild && node.lastChild.nodeType === Node.TEXT_NODE

为了提高可读性,最好使用Node.*_NODE符号常量(尽管在较旧的浏览器中可能未定义符号常量)。

为了避免文本节点为空的问题,您可以在此之前加上一个

node.normalize()

哪个

将指定的节点及其所有子树放入“规范化”形式。在规范化的子树中,子树中没有文本节点为空,并且没有相邻的文本节点。

请参阅https://developer.mozilla.org/zh-CN/docs/Web/API/Node.normalize

要省略注释节点和仅空白文本节点:

var children = Array.prototype.filter.call(node.childNodes || [], function(node) {
  return node.nodeType !== Node.COMMENT_NODE &&
    (node.nodeType !== Node.TEXT_NODE || /\S/.test(node.nodeValue));
}),
    firstChild = children[0],
    lastChild = children[children.length-1];

return firstChild && firstChild.nodeType === Node.TEXT_NODE ||
  lastChild && lastChild.nodeType === Node.TEXT_NODE;

如果由于某种原因检查内部是否潜伏着一个子元素很重要,那么只需添加一个检查即可

!!node.children.length

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将csv文件读入R,在每行的开头和结尾处都包含方括号

来自分类Dev

html dom和javascript

来自分类Dev

在包含关键字的行的开头和结尾处插入标签

来自分类Dev

如何使用javascript和HTML DOM更新HTML元素的颜色?

来自分类Dev

如何确定在父元素的开头或结尾处是否存在文本?HTML DOM和JavaScript

来自分类Dev

在字符串的开头和结尾处连续删除数学运算符

来自分类Dev

CCLabelTTF :: setString在字符串的开头和结尾处不接受空格

来自分类Dev

在歌曲的开头和结尾处淡入/淡出音频

来自分类Dev

Angular http.get不喜欢开头和结尾处带有方括号的文本文件

来自分类Dev

使用PyDub删除wave文件开头和结尾处的静音

来自分类Dev

如何使用正则表达式在javascript中字符串的开头和结尾处删除<br>?

来自分类Dev

strsplit()的行为与字符串开头和结尾处的空格不同

来自分类Dev

始终在方法的开头和结尾处执行代码

来自分类Dev

在contentEditable div的用户选择的开始和结尾处插入HTML标记

来自分类Dev

Python numpy在列的开头和结尾处插入列

来自分类Dev

选择名称开头和结尾处具有固定模式的列,以及可变的中间部分

来自分类Dev

如何在Flutter TextFormField的开头和结尾处缩进和缩进

来自分类Dev

如何使用DOM和Javascript调用多个函数

来自分类Dev

在每行的开头和结尾处添加文本

来自分类Dev

如何使用javascript和HTML DOM更新HTML元素的颜色?

来自分类Dev

在段落的开头和结尾处的双箭头

来自分类Dev

R在列的开头和结尾处删除零

来自分类Dev

如何使用正则表达式在javascript中字符串的开头和结尾处删除<br>?

来自分类Dev

strsplit()的行为与字符串开头和结尾处的空格不同

来自分类Dev

如何连接多个CSV文件,避免在开头和结尾处有些行

来自分类Dev

在第1行的开头和结尾处添加特定的字符串

来自分类Dev

Ansible - 映射属性时在 Key 的开头和结尾处“未定义”

来自分类Dev

Javascript:向dom添加和删除元素

来自分类Dev

删除在 R 开头和结尾处包含句点的行

Related 相关文章

  1. 1

    将csv文件读入R,在每行的开头和结尾处都包含方括号

  2. 2

    html dom和javascript

  3. 3

    在包含关键字的行的开头和结尾处插入标签

  4. 4

    如何使用javascript和HTML DOM更新HTML元素的颜色?

  5. 5

    如何确定在父元素的开头或结尾处是否存在文本?HTML DOM和JavaScript

  6. 6

    在字符串的开头和结尾处连续删除数学运算符

  7. 7

    CCLabelTTF :: setString在字符串的开头和结尾处不接受空格

  8. 8

    在歌曲的开头和结尾处淡入/淡出音频

  9. 9

    Angular http.get不喜欢开头和结尾处带有方括号的文本文件

  10. 10

    使用PyDub删除wave文件开头和结尾处的静音

  11. 11

    如何使用正则表达式在javascript中字符串的开头和结尾处删除<br>?

  12. 12

    strsplit()的行为与字符串开头和结尾处的空格不同

  13. 13

    始终在方法的开头和结尾处执行代码

  14. 14

    在contentEditable div的用户选择的开始和结尾处插入HTML标记

  15. 15

    Python numpy在列的开头和结尾处插入列

  16. 16

    选择名称开头和结尾处具有固定模式的列,以及可变的中间部分

  17. 17

    如何在Flutter TextFormField的开头和结尾处缩进和缩进

  18. 18

    如何使用DOM和Javascript调用多个函数

  19. 19

    在每行的开头和结尾处添加文本

  20. 20

    如何使用javascript和HTML DOM更新HTML元素的颜色?

  21. 21

    在段落的开头和结尾处的双箭头

  22. 22

    R在列的开头和结尾处删除零

  23. 23

    如何使用正则表达式在javascript中字符串的开头和结尾处删除<br>?

  24. 24

    strsplit()的行为与字符串开头和结尾处的空格不同

  25. 25

    如何连接多个CSV文件,避免在开头和结尾处有些行

  26. 26

    在第1行的开头和结尾处添加特定的字符串

  27. 27

    Ansible - 映射属性时在 Key 的开头和结尾处“未定义”

  28. 28

    Javascript:向dom添加和删除元素

  29. 29

    删除在 R 开头和结尾处包含句点的行

热门标签

归档