Javascript 如何获取.nodeType属性以显示2?
HTML 我想检索属性nodeType,为什么我会得到未定义的Javascript 如何获取.nodeType属性以显示2?,javascript,dom,document,nodes,Javascript,Dom,Document,Nodes,HTML 我想检索属性nodeType,为什么我会得到未定义的 还有,有没有更好的方法来检索textNode,不使用firstChild,而是使用其他方法 元素.id包含一个字符串值。该字符串没有节点类型 也许,如果您解释您真正想要解决的问题,我们可以帮助您解释为什么您感到困惑,并试图在字符串上获取节点类型 文本节点是元素的子对象。如果您知道只有一个文本节点,那么元素。firstChild是检索它的一种方法。如果希望对象中的所有文本(而不是实际的文本节点),则可以使用element.textCo
还有,有没有更好的方法来检索textNode,不使用firstChild,而是使用其他方法
元素.id
包含一个字符串值。该字符串没有节点类型
也许,如果您解释您真正想要解决的问题,我们可以帮助您解释为什么您感到困惑,并试图在字符串上获取节点类型
文本节点是元素的子对象。如果您知道只有一个文本节点,那么元素。firstChild
是检索它的一种方法。如果希望对象中的所有文本(而不是实际的文本节点),则可以使用element.textContent
(或者在旧版本的IE中使用element.innerText
)
你经常需要小心文本节点,因为一些浏览器(是的,我指的是IE)会在文本节点中单独放置回车符,并且可能会出现比你预期的更多的文本节点,这仅仅取决于HTML的格式(尽管它在显示上没有什么区别)。因此,仅假设标题
文本位于元素.firstChild中并不是最健壮的代码。这就是element.textContent
如果只需要文本,而不是实际的文本节点,那么它将更加容易和健壮
下面是一个简单的跨浏览器函数,它将获取元素的文本:
var element = document.getElementById("title");
console.log(element.nodeType); // 1
console.log(element.id.nodeType); // undefined
console.log(element.firstChild.nodeType); // 3
或者,如果希望第一个子文本节点中包含除空白以外的内容,请执行以下操作:
function getElementText(el) {
if (typeof el.textContent !== "undefined") {
return el.textContent;
}
return el.innerText;
}
element.id
包含一个字符串值。该字符串没有节点类型
也许,如果您解释您真正想要解决的问题,我们可以帮助您解释为什么您感到困惑,并试图在字符串上获取节点类型
文本节点是元素的子对象。如果您知道只有一个文本节点,那么元素。firstChild
是检索它的一种方法。如果希望对象中的所有文本(而不是实际的文本节点),则可以使用element.textContent
(或者在旧版本的IE中使用element.innerText
)
你经常需要小心文本节点,因为一些浏览器(是的,我指的是IE)会在文本节点中单独放置回车符,并且可能会出现比你预期的更多的文本节点,这仅仅取决于HTML的格式(尽管它在显示上没有什么区别)。因此,仅假设标题
文本位于元素.firstChild中并不是最健壮的代码。这就是element.textContent
如果只需要文本,而不是实际的文本节点,那么它将更加容易和健壮
下面是一个简单的跨浏览器函数,它将获取元素的文本:
var element = document.getElementById("title");
console.log(element.nodeType); // 1
console.log(element.id.nodeType); // undefined
console.log(element.firstChild.nodeType); // 3
或者,如果希望第一个子文本节点中包含除空白以外的内容,请执行以下操作:
function getElementText(el) {
if (typeof el.textContent !== "undefined") {
return el.textContent;
}
return el.innerText;
}
在DOM中,是为属性保留的。可以使用父节点的属性
属性检查这些节点
function getFirstTextNode(el) {
var child = el.firstChild;
while (child) {
if (child.nodeType === 3 && child.nodeValue.replace(/\s/g, "") !== "") {
return child;
}
child = child.nextSibling;
}
return null;
}
在DOM中,是为属性保留的。可以使用父节点的属性
属性检查这些节点
function getFirstTextNode(el) {
var child = el.firstChild;
while (child) {
if (child.nodeType === 3 && child.nodeValue.replace(/\s/g, "") !== "") {
return child;
}
child = child.nextSibling;
}
return null;
}
+1我不知道属性是基于数组的@压碎它只是得到它的值,但我想要2@kozlovski5attributes
属性实际上不是一个数组,但是a并不是属性中的所有内容
NamedNodeMap
将成为节点类型2?+1我不知道属性是基于数组的@压碎它只是得到它的值,但我想要2@kozlovski5attributes
属性实际上不是数组,但a不是attributes
NamedNodeMap
中的所有内容都将成为节点类型2?@crush我尝试了这个,但它给出了一个未定义的数组。@crush我尝试了这个,但它给了我一个未定义的答案。为什么投反对票?这是一个完全正确的答案,解释了为什么他们得到了未定义的
。如果OP解释了他们实际上想做什么,而不是让我们去猜测,那么我们可能会更有帮助。在问题的第二部分添加了信息-检索文本节点。为什么要投否决票?这是一个完全正确的答案,解释了为什么他们得到了未定义的
。如果OP解释了他们实际上想做什么,而不是让我们去猜测,那么我们可能会更有帮助。添加了问题第二部分的信息-检索文本节点。