J'essaie de trouver un élément avec le nom spécifié en utilisant ce code:
data['res']
Le problème est que lorsque
var x = document.querySelectorAll("input[name=" + data['res'] + "]");
contient une chaîne qui incluent de l'espace, l'erreur suivante s'affiche:
SyntaxError: une chaîne non valide ou illégale a été spécifiée
4 Réponses :
try:
document.querySelectorAll("input[name=\"" + data['res'] + "\"]");
Vous devez d'abord citer la valeur:
var x = document.querySelectorAll(`input[name="` + data['res'] + `"]`);
Parce que vous ne citez pas la valeur
var x = document.querySelectorAll(`input[name="${data['res']}"]`);
Si vous pouvez utiliser des chaînes littérales, ce serait un bon cas d'utilisation.
var x = document.querySelectorAll("input[name='" + data['res'] + "']");
Essayez de mettre la valeur entre guillemets simples. Si vous le faites avec:
document.querySelectorAll("input[name='" + data['res'] + "']");
// value would be "input[name='name with a space']" -- valid
Vous obtiendrez une valeur non valide en raison du manque de guillemets.
Vous pouvez mettre des guillemets simples après "name =" et avant "]":
document.querySelectorAll("input[name=" + data['res'] + "]");
// let's say data['res'] = 'name with a space'
// value would be "input[name=name with a space]" -- invalid
Pourriez-vous remplacer l'espace par un trait de soulignement (
_)?Parce que vous ne le citez pas ...
Il est étrange que votre nom contienne une chaîne.
Je ne vois pas jQuery ici.