getelementbyid на динамически создаваемых элементах не работает

Я создаю элемент с этим кодом. Установка идентификатора, как это должно быть установлено. (Нужна ли мне проверка?):

$sectionContainer = $dom->createElement('div', $section);
$sectionContainer->setAttribute("id", $section);
$sectionContainer->setIdAttribute("id", TRUE);
$dom->validateOnParse = true;
$divup->parentNode->insertBefore($sectionContainer, $divup);echo 'avant'."</br>";
echo $section;
print_r($dom->getElementById($section)->getAttribute('id'));
echo 'apres'."</br>";

Но я получаю это:
Неустранимая ошибка: необработанная ошибка: вызов функции-члена getAttribute () со значением NULL

Так что он не может найти элемент, который я только что создал, почему?

-1

Решение

Привет всем,

проблема не с $dom->validateOnParse = true;,

Ваша ошибка происходит из этой строки кода — $sectionContainer->setIdAttribute("id", TRUE);,

Если вы хотите установить идентификатор атрибута DOMElement лайк <div id="myId"></div> вам нужно только $domElement->setAttribute("id", "myId"); который у вас уже есть.

DOMElement :: setIdAttribute фактически указывает, что этот атрибут является уникальным идентификатором, который не имеет ничего общего с id="myId" атрибут

(PHP 5, PHP 7)

DOMElement :: setIdAttribute — объявляет атрибут
указывается по имени, чтобы иметь тип ID

Описание

public void DOMElement :: setIdAttribute (строка $ name, bool $ isId)

Объявляет, что имя атрибута имеет тип ID.

Ну не очень понятно что это тип ID, но я могу сказать, что это нечто отличное от id атрибут HTML-элемента.

Проверьте демо ВОТ

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]