似乎不能让这个工作… 我有一个隐藏某些链接的页面.当DOM加载时,我使用jQuery来切换其中的一些元素.这是通过使用如下所示的数据属性驱动的: 然后,我有代码: $.each($(".d_btn"), function() { var btn = $(this).data('usr'); if ( btn == '48' ){ $(this).children('.hidden_button').toggle(); } 以上都按计划进行.问题是,一旦if语句被求值,我试图从class.d_btn中删除data-usr.我尝试了以下内容,没有任何作用(即,在页面加载后,源仍然显示data-usr属性: $(this).removeAttr("data-usr"); $(this).removeData("usr"); 我一直在这个工作几个小时,现在和…什么!帮助非常感谢! UPDATE 我尝试了将数据属性设置为空字符串的好建议,但是我仍然没有获得所需的结果. 为了进一步解释,我试图删除该属性的原因是这样的,当ajax响应向页面添加另一个项目时,先前添加的项目将已经显示或隐藏该按钮.在AJAX响应时,一旦DOM加载,我就调用相同的函数. 目前,当通过AJAX添加某些东西时,它会切换所有按钮(显示隐藏的按钮,反之亦然). 我也完全愿意尝试替代我的方法.谢谢! UPDATE 那么这个灯泡刚刚闪过,我可以使用.show()而不是.toggle()来做我想做的事情. 无论如何,我仍然希望找到一个这个问题的答案,因为这个页面可能会在每次添加东西时检查数百个项目 – 这似乎是非常低效的(即使是一台电脑,哈哈哈).