似乎不能让这个工作…
我有一个隐藏某些链接的页面.当DOM加载时,我使用jQuery来切换其中的一些元素.这是通过使用如下所示的数据属性驱动的:
<div class="d_btn" data-usr='48'> <div class="hidden_button">
然后,我有代码:
$.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()来做我想做的事情.
无论如何,我仍然希望找到一个这个问题的答案,因为这个页面可能会在每次添加东西时检查数百个项目 – 这似乎是非常低效的(即使是一台电脑,哈哈哈).