Я так скучаю по jQuery. Я работаю над проектом, где мне нужно, чтобы мои руки были грязными с хорошим "простым Javascript".
У меня такой сценарий:
parent
child1
child2
child3
Через javascript я хочу иметь возможность вставлять новый node до или после любого из этих детей. В то время как javascript имеет insertBefore
, нет insertAfter
.
Вставить перед тем, как будет работать над этим выше, вставить node перед любым из них:
parent.insertBefore(newNode, child3)
Но как вставить node ПОСЛЕ child3? Я использую это в данный момент:
for (i=0,i<myNodes.length,i++){
myParent.insertBefore(newNode, myNodes[i+1])
}
Это вставляет мой newNode перед следующим sibling node каждого из моих узлов (это означает, что он помещает его после каждого node).
Когда он дойдет до последнего node, myNodes[i+1]
станет undefined
, поскольку теперь я пытаюсь получить доступ к индексу массива, который не существует.
Я бы подумал, что это будет ошибкой, но похоже, что в этой ситуации все отлично работает, мой node действительно вставлен после последнего node.
Но так ли это? Я тестирую его сейчас в нескольких современных браузерах без каких-либо явно неблагоприятных эффектов. Есть ли лучший способ?