我对jQuery有一个问题,当查询字符串中有“ $”字符的char时找不到元素 - 是否有已知问题?不幸的是,搜索引擎使得在线程中的符号非常困难。

我有这样的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进行分析时,我看到“项目”是一个空集。例如,如果我查询$('。benuitem'),它正确返回了页面中带有25个匹配项的结果集;当s中包含$ chars时,看起来像$(S)不起作用吗?

解决方案是什么?抱歉,如果我说的是一个愚蠢的问题或众所周知的问题 - 我试图在Google上进行Google,但没有成功。

注意:JavaScript本身,重复的ID或未加载的jQuery或类似的东西都不是问题。该函数的确被称为OnClick,如果我用document.getElementById(ids [i])替换$('#' + ids [i]),它确实返回正确的元素。仅供参考,该字符串传递给函数SetSelectedTab通常包含到TD元素的层次路径。尽管在上面的示例TD中,IDS.LENGTH为1。

谢谢,拉贾。

有帮助吗?

解决方案

也许尝试逃脱他们的反弹

<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">...
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top