J'ai un problème avec jquery où les éléments ne sont pas trouvés lorsque la chaîne de requête a le caractère '$' char - y a-t-il un problème connu? Malheureusement, les moteurs de recherche rendent si difficile de trouver des symboles dans les discussions.
J'ai un html comme celui-ci:
<TD id="ctl00$m$g_cd3cd7fd_df51_4f95_9057_d98f0c1e1d60$ctl00$ctl00_5"
class="MenuItem"
onclick="setSelectedTab('ctl00$m$g_cd3cd7fd_df51_4f95_9057_d98f0c1e1d60$ctl00$ctl00_5');"
tabsrowid="ctl00$m$g_cd3cd7fd_df51_4f95_9057_d98f0c1e1d60$ctl00$ctl00_"
nohide="false">...
et mon JScript va quelque chose comme:
function setSelectedTab(selection) {
var ids = selection.split('/');
for (var i = 0; i<ids.length; i++) {
var item = $("#" + ids[i]);
item.addClass("selected");
$("#" + item.attr("tabsrowid")).show();
}
}
En analysant dans Firebug, je vois que 'point' est un ensemble vide. Si je interroge $ ('. MenuItem') par exemple, il renvoie correctement un ensemble de résultats avec 25 éléments correspondants dans la page; il semble que $ (s) ne fonctionne pas quand s contient $ chars?
Quelle est la solution? Désolé si c'est une question stupide ou un problème bien connu - comme je l'ai dit, j'ai essayé de google autour, mais sans succès.
Remarque: Ce n'est pas un problème avec javascript, ou des doublons, ou jquery non chargé, ou quelque chose comme ça. La fonction est appelée onclick, et si je remplace $ ('#' + ids [i]) par document.getElementById (ids [i]), elle renvoie l'élément correct. fyi, la chaîne transmise à la fonction setSelectedTab contient généralement un chemin hiérarchique vers l'élément TD; bien que dans l'exemple TD ci-dessus, l'ids.length est 1.
Merci, Raja.
qui a travaillé - merci. – user392005
Eh bien, je voulais juste aussi mentionner ce qui a fonctionné exactement. J'ai dû double-échapper (\\\) $ dans les valeurs d'attributs onclick et tabsrowid, mais j'ai dû laisser l'attribut id tel quel (non échappé). – user392005