Par exemple, ce qui suit sélectionne une division avec id = “2”:
row = $("body").find("#2");
Comment puis-je faire quelque chose comme ça:
row_id = 5; row = $("body").find(row_id);
La syntaxe ci-dessus génère une erreur. J’ai vérifié la documentation jQuery et les réponses ici sans succès.
row = $("body").find('#' + row_id);
Plus important encore, le body.find supplémentaire n’a aucun impact sur les performances. La manière appropriée de le faire est simplement:
row = $('#' + row_id);
Le plus court chemin serait:
$("#" + row_id)
Limiter la recherche au corps n’a aucun avantage.
En outre, vous devriez envisager de renommer vos id
en quelque chose de plus significatif (et conforme à HTML selon la réponse de Paolo), en particulier si vous avez également un autre dataset à nommer.
Doing $('body').find();
n’est pas nécessaire lors de la recherche par identifiant; il n’y a pas de gain de performance.
Notez également que le fait d’avoir un identifiant commençant par un numéro n’est pas valide HTML :
Les jetons ID et NAME doivent commencer par une lettre ([A-Za-z]) et peuvent être suivis d’un nombre quelconque de lettres, de chiffres ([0-9]), de tirets (“-“), de traits de soulignement (“_”) , les deux-points (“:”) et les points (“.”).
Vous pouvez le faire comme ceci:
row_id = 5; row = $("body").find('#'+row_id);
Il y a deux problèmes avec votre code
Je ne connais pas beaucoup jQuery, mais essayez ceci:
row_id = "#5"; row = $("body").find(row_id);
Edit: Bien sûr, si la variable est un nombre, vous devez append "#"
au recto:
row_id = 5 row = $("body").find("#"+row_id);