所以我有这个用于隐藏类别(div class = category)的JS脚本:
脚本应该像这样工作 - 访问www.example.com的访问者看不到类别,但链接www.example.com/?access=beta的访问者可以看到“Beta”类别。
我使用jQuery .show()和.hide()来显示和隐藏div类别但是类别没有显示。已经好几天都无法解决这个问题,我的思绪被封锁了。有什么建议吗?
//this line of code hides category
$("*").find("[data-categoryname=Beta]").hide();
//this line of code shoud show category, but it isn't showing it
$("*").find("[data-categoryname="+grabAccess()+"]").show();
//see link above for full script
PS。脚本正在使用cookie,因此访问者不必每次都进入/?access = beta
PS2。测试脚本的唯一方法是下载它,因为你需要在URL中输入/?access = beta而你不能通过JSFiddle
答案 0 :(得分:1)
我最好的猜测(没有设置代码的本地测试)是你的奇怪的选择器失败了。 find()
方法在元素内部搜索,而不是通过先前选定元素的数组。如果有的话,您可以将filter()
与当前代码一起使用。
而不是:
$("*").find("[data-categoryname=Beta]").hide();
我只是做
$("[data-categoryname=Beta]").hide();
或者,假设一个div元素:
$("div[data-categoryname=Beta]").hide();
选择器,就像你拥有它一样,搜索页面上每个元素的后代。这是一种非常低效的方法,可能会导致超时或其他问题。