С точки зрения чистого DOM, если дочерний элемент является последним дочерним элементом родителя, его свойство nextSibling
будет null
.
Пример Javascript (не то, что вы ищете Javascript специально):
if (!child.nextSibling) {
// It's the last child
}
Важно отметить, что nextSibling
пересекает узлы . Иногда вы хотите пройти элементы вместо (в отличие от текстовых узлов и тому подобное). Например, в этой разметке:
<p>Testing <span>one</span> two three</p>
... span
- не последний узел в своем контейнере (поскольку за ним следует текстовый узел), но это последний элемент в своем контейнере. Если вы хотите посмотреть на это, вам необходим цикл, проверяющий nodeType
, например ::
// =====
// Note: This example is in JavaScript, but I assume it's easy enough
// to follow what it's doing and translate it to PHP
// =====
// Utility function
function nextElement(node) {
var rv = node.nextSibling;
while (rv && rv.nodeType !== 1) {
rv = rv.nextSibling;
}
return rv;
}
// Usage
if (!nextElement(child)) {
// There was no element after `child`
}