javascript - jQuery 隐藏/显示不起作用,不像 JS 函数

标签 javascript jquery

<strong class="comment" id="comment[6]">Show comments</strong> 
<div id="comments[6]">HERE GO COMMENTS</div>

还有我的 JS 文件:

$(document).ready(
    function() {
        $(".comment").click(
            function() {
            var id = $(this).attr("id").replace("comment", "comments");
            //document.getElementById(id).style.display = 'none';
            $('#' + id).hide();
            } );
        });

HTML 代码是用 PHP 生成的,因此有很多带编号的 div,每次单击都会显示/隐藏相应的 div。但问题是,就 Javascript 而言(注释行)一切正常,但当我尝试使用 jQuery 时,什么也没有发生。问题出在哪里?

最佳答案

那是因为square brackets have special meaning within a jQuery selector .如果实际 id 包含方括号,则需要使用反斜杠将其转义:

    var id = $(this).attr("id")
                    .replace("comment", "comments")
                    .replace(/(\[|])/g,"\\$1");

精彩演示:http://jsfiddle.net/B3Hx9/

关于javascript - jQuery 隐藏/显示不起作用,不像 JS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18042357/

相关文章:

javascript - socket.io 服务器在注册客户端时非常延迟断开连接

javascript - 在 AngularJS 中使用过滤器更新给定的表

javascript - 使用 JQuery 自动填充输入字段

javascript - 动画脚本在 Chrome 以外的浏览器中不起作用

c# - ASP.NET : getting 'currentStyle' is null or not an object when adding webpanel dynamicly

Javascript - 获取两个日期之间的日期数组

javascript - 如何使用 "java script"进行加密并使用 "java"进行解密

javascript - 如何向我的应用添加静音按钮?

javascript - 动态更改 View 中的 GSP 模板

设置列计数属性时,JQuery CSS setter 在 webkit 中不起作用