this.startOffset
和this.endOffset
是我用于在节点中选择单个字符的值:
this.startOffset = this.node.length - 1 ||
this.node.firstChild.length - 1 ||
this.node.childNodes.item(0).length - 1 ||
this.node.childNodes.item(0).firstChild.length - 1
this.endOffset = this.node.length ||
this.node.firstChild.length ||
this.node.childNodes.item(0).firstChild.length
我在-1
中使用this.startOffset
,因为这是字符开头的值。 (例如0,1
将选择节点中的第一个字符。)
但是,由于this.node.childNodes.item(0).length - 1
在第一个字符中变为0,因此它将返回false
而不是0
,代码将达到this.node.childNodes.item(0).firstChild.length - 1
,从而导致错误。< / p>
我如何才能使0
不返回false,而是将this.startOffset
设置为0
?
答案 0 :(得分:1)
如果关注文本节点,请尝试使用子节点
this.startOffset = this.children.length ||
this.children.item(0).children.length;
这将跳过文本节点并根据子节点及其子节点是否存在返回布尔值。
答案 1 :(得分:1)
您可以使用三元运算符返回任何您想要的值
this.startOffset = (condition) ? 1 : 0;