【发布时间】:2010-08-22 18:45:35
【问题描述】:
我有一个 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();
}
}
在萤火虫中分析时,我看到“项目”是一个空集。例如,如果我查询 $('.MenuItem') ,它会正确返回页面中包含 25 个匹配项的结果集;当 s 中包含 $ 字符时,似乎 $(s) 不起作用?
解决办法是什么?对不起,如果这是一个愚蠢的问题或众所周知的问题 - 正如我所说的,我试图用谷歌搜索,但没有成功。
注意:这不是 javascript 本身的问题,也不是重复的 id,或者未加载 jquery 或类似的问题。该函数确实被称为 onclick,如果我将 $('#' + ids[i]) 替换为 document.getElementById(ids[i]),它确实会返回正确的元素。 仅供参考,传递给函数 setSelectedTab 的字符串通常包含 TD 元素的分层路径;虽然在上面的示例 TD 中,ids.length 为 1。
谢谢, 拉贾。
【问题讨论】:
标签: javascript jquery addclass attr