有条件地隐藏所有帖子上的div但不包括​​类别页面

时间:2018-06-19 04:09:57

标签: javascript jquery wordpress

如何在除WordPress类别页面上的帖子之外的所有帖子上隐藏div?

我目前有以下jQuery但无法让它工作 -

jQuery(function(){
      if (window.location.pathname == "offonalim.com/category/fashion.html"||window.location.pathname == "offonalim.com/category/interior.html"||window.location.pathname == "offonalim.com/category/travel.html"||window.location.pathname == "offonalim.com/category/work.html") {
            jQuery('.qodef-post-title').show();
            jQuery('.qodef-post-info').show();
      } else {
            jQuery('.qodef-post-title').hide();
            jQuery('.qodef-post-info').hide();
      }
 });

2 个答案:

答案 0 :(得分:2)

我可以看到您网站的类别页面在每个网址中都包含关键字"Category", 因此,您可以使用此关键字检查网址是否具有此特定关键字,然后相应地显示或隐藏div

无需指定完整网址。

<script type="text/javascript">
function myFunction(){
   val path=window.location.pathname;
      if(window.location.href.indexOf("category") > -1) {
            $('.qodef-post-title').show();
            $('.qodef-post-info').show();
      } else {
            $('.qodef-post-title').hide();
        $('.qodef-post-info').hide();
      }
 }
 myFunction();
 </script>

答案 1 :(得分:1)

window.location.pathname生成路径名,而不是整个URL。因此,您的代码在逻辑上是不正确的。

而不是单独检查每条路径,理想的做法是创建一系列可能的路径并检查该阵列中的位置路径。这样的事应该可以正常工作:

var catPaths = [
  "/category/fashion.html",
  "/category/interior.html",
  "/category/travel.html",
  "/category/work.html"
];

jQuery(function() {
  if (catPaths.includes(window.location.pathname)) {
    jQuery('.qodef-post-title').show();
    jQuery('.qodef-post-info').show();
  } else {
    jQuery('.qodef-post-title').hide();
    jQuery('.qodef-post-info').hide();
  }
});

您可以使用toggle()并对选择器进行分组来进一步最小化代码:

jQuery(function() {
  var includes = catPaths.includes(window.location.pathname);
  jQuery('.qodef-post-title, .qodef-post-info').toggle(includes);
});