У меня проблема с jquery, когда элементы не найдены, когда в строке запроса есть символ '$' - есть известная проблема?К сожалению, поисковые системы затрудняют поиск символов в темах.
У меня есть HTML-код, такой как:
<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">...
, и мой jscript выглядит так:
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();
}
}
Анализируя в firebug, я вижу, что 'item' - это пустой набор.Например, если я запрашиваю $ ('. MenuItem'), он правильно возвращает набор результатов с 25 соответствующими элементами на странице;похоже, что $ (s) не работает, когда s содержит $ chars в нем?
Каково его решение?Извините, если это глупый вопрос или общеизвестная проблема - как я уже говорил, я пытался гуглить, но безуспешно.
Примечание: это не проблема с самим javascript, или с дублирующимися идентификаторами, или с jquery, не загруженными, иличто-нибудь подобное.Функция вызывается onclick, и если я заменяю $ ('#' + ids [i]) на document.getElementById (ids [i]), она возвращает правильный элемент.Например, строка, переданная в функцию setSelectedTab, обычно содержит иерархический путь к элементу TD;хотя в приведенном выше примере TD, ids.length равен 1.
Спасибо, Раджа.