1
votes

Jquery querySelectorAll utilisant une autre propriété que la classe

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 commentaires

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.


4 Réponses :


2
votes

try:

document.querySelectorAll("input[name=\"" + data['res'] + "\"]");


0 commentaires

2
votes

Vous devez d'abord citer la valeur:

var x = document.querySelectorAll(`input[name="` + data['res'] + `"]`);


0 commentaires

2
votes

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'] + "']");


0 commentaires

2
votes

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


0 commentaires