Я загружаю элементы со страницы с помощью php. Это работает почти. Единственное, что из всех якорных элементов, которые я пытаюсь загрузить, это дает мне только половину. Он пропускает каждый второй элемент. Вот некоторые из моих сценариев PHP
$div = @$doc->getElementById('topicList');
$anchs=$div->getElementsByTagName('a');
//echo $anchs->length; it does have the correct length
$container = $doc->createElement("div");
$container->setAttribute('class', 'relative');foreach ($anchs as $anch){
$container->appendChild($anch);
}
/// /////////
$expDiv = $doc->createElement("div");
$expDiv->setAttribute('class', 'explanation_div');
$container->appendChild($expDiv);
echo utf8_decode(@$doc->saveXML($container));
Так что это только производит каждый второй элемент привязки, а не все.
Я пробовал это с циклом for, но это не разрешено в DomNodeList.
Я думаю, что это должно быть как-то связано с appendChild, и что он может добавить следующий к предыдущему или что-то в этом роде, но я не понимаю, как это сделать.
У кого-то была эта проблема раньше, или вы видите, что я делаю не так?
Помощь очень ценится!
Я решил это сейчас. Оказывается appendChild
Метод выталкивает элемент списка, поэтому все элементы перемещаются назад на позицию. Это сработало:
for ( $i=0;$i<$anchs->length;){ // so don't increase $i
$anch=$anchs->item($i);
$container->appendChild($anch);
}
Других решений пока нет …