似乎无法使这一功能正常工作...

我的页面隐藏了某些链接。加载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语句,我就试图从类.d_btn中删除data-usr。我尝试了以下操作,但没有任何效果(即在页面加载后,源仍然显示data-usr属性:
$(this).removeAttr("data-usr");

$(this).removeData("usr");

我已经为此工作了几个小时,而且……什么都没有!非常感谢您的帮助!

更新

我尝试了将data属性设置为空字符串的好建议,但仍然没有得到理想的结果。

进一步说明一下,我尝试删除该属性的原因是,当ajax响应将另一个项目添加到页面时,先前添加的项目已经具有显示或隐藏的按钮。在AJAX响应后,一旦加载DOM,我就会调用相同的函数。

当前,当通过AJAX添加某些内容时,它会切换所有按钮(显示隐藏的按钮,反之亦然。)

我也完全愿意尝试替代我的方法。谢谢!

更新

好吧,灯泡刚刚闪烁,我可以只使用.show()而不是.toggle()来做我想做的事情

无论如何,我仍然想找到这个问题的答案,因为无论何时添加某些内容,该页面都可能会检查数百个项目-这似乎效率极低(即使对于计算机,哈哈哈)。

最佳答案

更改DOM不会影响源。它会影响DOM,您可以使用Inspector/Developer Tools对其进行查看。右键单击=>“查看源代码”将为您提供页面的原始源代码,而不是JavaScript修改的实际当前源代码。

09-11 19:46
查看更多