getElementById() générique
J'ai un div, et là, j'ai eu quelques childnodes dans des concentrations non.
Maintenant je dois changer l'ID de chaque élément dans un div. Comment réaliser?
J'ai pensé, parce qu'ils ont upgoing Id, si les parents id='path_test_maindiv", alors le prochain point négatif serait "path_test_maindiv_child", et donc j'ai pensé, j'avais résoudre que par des caractères génériques, par exemple:
document.getElementById('path_test_*')
Est-ce possible? Ou existe-il d'autres moyens?
- Pourquoi avez-vous à changer les Id? Peut-être que votre approche initiale est mal et vous devez utiliser les classes? Juste une pensée... si vous postez votre code HTML et d'expliquer pourquoi vous voulez, nous pourrions être en mesure d'aider plus.
Vous devez vous connecter pour publier un commentaire.
Pas en JavaScript natif. Vous avez différentes options:
1) Mettre une classe et d'utiliser getElementsByClassName mais il ne fonctionne pas dans tous les navigateurs.
2) Faire votre propre fonction. Quelque chose comme:
3) l'Utilisation d'une bibliothèque ou d'un sélecteur CSS. Comme jQuery 😉
document.body.getElementsByTagName('*')
êtredocument.getElementById('path_test_maindiv').getElementsByTagName('*')
au lieu d'améliorer l'efficacité. Pas besoin d'obtenir l' tous éléments lorsque vous avez besoin seulement ceux spécifiques élément DIV. 🙂Dans l'un des commentaires que vous dites:
Je pense que vous devriez suivre une approche différente depuis le début, mais pour ce que ça vaut, dans les navigateurs plus récents (ok, FF3.5), vous pouvez utiliser
document.querySelectorAll()
avec lequel vous pouvez obtenir des résultats similaires comme jQuery:Mise à jour:
querySelectorAll()
est seulement pas pris en charge dans IE < 8 et FF 3.0.document.querySelector(expression)
disponible. Pour obtenir les éléments les Id qui contient une sous-chaîne, utilisez l'expression'[id*=foo]'
. Pendant ce temps, les anciens navigateurs (IE<8, FF 3.0) ne sont pas plus d'importance, de sorte que vous pouvez utiliser les méthodes modernes (question a été posée 2010 - il y a 6 ans à partir de maintenant).jQuery vous permet de trouver des éléments où un attribut particulier commence avec une valeur spécifique
En jQuery vous utilisez
Je ne pense pas les caractères génériques sont autorisés dans getelementById.
Au lieu de cela, vous pouvez avoir tous les nœuds enfants de votre respectif à l'aide de DIV:
Ce vais vous donner un tableau de tous les éléments à l'intérieur de votre DIV. Maintenant, en utilisant
for
en boucle vous pouvez parcourir à travers tous les éléments d'enfant et en même temps, vous pouvez vérifier le type de l'élément ou de l'IDENTIFIANT ou le NOM, si elle s'accompagne ensuite de le modifier comme vous le souhaitez.Vous ne devez pas modifier l'ID de l'élément d'ID de autre élément existant. C'est très mal, afin de mieux vous repenser votre logique de base avant d'aller sur.
Ce que vous essayez de faire exactement?
De toute façon, à obtenir tous les éléments avec l'ID de commencer avec quelque chose, utiliser jQuery comme suggéré précédemment, si vous ne pouvez pas, il est également possible à l'aide de JavaScript, laissez-nous savoir.
input
éléments, mais de tous les éléments de formulaire (ce qui pourrait aussi êtreselect
outextarea
)...