It's not a mistake. The DOM has not only element nodes, but also text nodes [docs] (among others). In this example:
<div>
<p>Q: Where the rabbit?</p>
:
<div> <p>, .- node
<p> node, Where the rabbit?.
, elementsList[i].parentNode <div>,
elementsList[i].parentNode.firstChild
node.
node,
elementsList[i].parentNode.children[0]
: Firefox 3.0, , children .
Afaik ( ) , node :
var firstChild = elementsList[i].parentNode.firstChild;
while(firstChild.nodeType !== 1 && (firstChild = firstChild.nextSibling));
if(firstChild) {
}
, :
function getFirstElementChild(element) {
var firstChild = null;
if(element.children) {
firstChild = element.children[0] || null;
}
else {
firstChild = element.firstChild;
while(firstChild.nodeType !== 1 && (firstChild = firstChild.nextSibling));
}
return firstChild;
}
( ) , , jQuery.
, , node, :
$('.faq_answer').prev().append(finalRender.cloneNode(true));
(, p .faq_answer)
, .