使用iFrame显示/隐藏div:语法错误,无法识别的表达式#

时间:2013-08-01 19:20:33

标签: jquery internet-explorer syntax syntax-error show-hide

我有一个包含多个隐藏div的页面。单击相应的链接时,div内容会显示自己,同时隐藏可能已打开的任何其他div。我已成功运行此功能而没有错误here。这是一个简单的表演/隐藏,没什么特别的。

现在我正在构建一个新页面,除了一个div中有一个iFrame之外,它几乎完全相同,它正在拉入一个带有更新版本jQuery的页面(该网站正在运行1.3。 2,遗憾的是我无法升级。

当我尝试通过单击站点中的其他链接离开此新页面时,我在Firefox中看到“语法错误,无法识别的表达式:#”,而在IE8中,它显示Line:19 错误:抛出并且未捕获异常,然后单击“是”进行调试时出现“语法错误,无法识别的表达式:ad +”。然后我得到另一个错误,告诉我“对象不支持属性或方法”这一行:

            $("#" + $(this).attr("class")).show().siblings('div').hide(); 

这是否因为iFrame页面上使用的第二个jQuery库而发生?我唯一可以想到的是为什么它在一个页面而不是另一个页面上工作。

带代码的

Here is a fiddle - 如果您单击页面顶部的“主页”链接,则可以在控制台中看到语法错误。

以下是页面上脚本标记的完整内容。当我删除它时,我没有错误所以它必须在这里。我确实注意到单引号和双引号的混合,但当我尝试将其更改为其中一个时仍然出现错误:

        $(document).ready(function() {
        // Optional code to hide all divs
                    $("div" + ".menu").hide();
                      // Show chosen div, and hide all others
                    $("a").click(function ()
                    {
                        $("#" + $(this).attr("class")).show().siblings('div').hide();
                    });
        });

1 个答案:

答案 0 :(得分:0)

你的错误throwin代码行gor错误的选择器: $(“。”+ $(this).attr(“class”))。show()。siblings('div')。hide();

你的Statement选择一个空数组,这个doenst有任何名为“show()”的方法

或者您确实将自己的ID作为类属性?