php / php/php-src

\Dom\DocumentFragment::getElementById() is not supported

Ouverte
#20,282 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

@ndossche y travaille déjà.

Depuis le 24/10/2025.

  • #20284 par @ndossche — ouverte
Extension: dom Feature Status: Verified
Langage dominant
C
Étoiles
40.4k
Forks
8.2k
Merge moyen
2 j 13 h
PR mergées (30 j)
96

Description

Description

The following code:

<?php
$d = \Dom\HTMLDocument::createFromString('<p id="a">b</p><p id="a">c</p>');
$df = $d->createDocumentFragment();
$df->getElementById('a');

Resulted in this output:

  Error  Call to undefined method Dom\DocumentFragment::getElementById().

But I expected this output instead:

(no output)

This method is present in the DOM spec: https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment/getElementById and the similar method ::querySelector is implemented; I can't tell if querySelector actually uses the ID index though or does a linear scan through the fragment. (Aka, this method should not just be implemented, it is expected to have O(1) performance.)

PHP Version
PHP 8.4.13 (cli) (built: Oct  1 2025 20:34:15) (NTS)
Copyright (c) The PHP Group
Built by Debian
Zend Engine v4.4.13, Copyright (c) Zend Technologies
    with Zend OPcache v8.4.13, Copyright (c), by Zend Technologies
Operating System

Ubuntu 24.04.1

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par examiner la pull request liée et l’implémentation existante de Dom\DocumentFragment::querySelector mentionnée dans l’issue. Consultez la spécification du DOM concernant la sémantique de getElementById(), notamment les ID en double et le comportement de recherche attendu ; le travail est terminé lorsque la méthode est disponible et renvoie l’élément du fragment correspondant comme spécifié.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
c, php
Domaine
api
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.