如果 URL 哈希以 Javascript 中的单词开头,则隐藏 div

Hide div if URL hash begins with word in Javascript

如果 URL 散列不存在,我如何隐藏以 id "news" 开头但还包含 "news1" "news2" 等数字的 divs包含 "news".

如果 someurl.com/#events 喜欢隐藏。但显示 "news" div 如果 someurl.com/news1

需要在常规 JS 中

谢谢,

如果你把 class 放在你想要应用它的所有 div 上,你可以这样做:

$(document).ready(function() {
    $('.CLASSNAME').each(function(i) {
        if($(this).val().indexOf('WORD_YOURE_LOOKING_FOR') > -1) {
            $(this).css('display', 'none');
         }
    );
});

您可以像这样访问 URL 中的哈希:

var hash = window.location.hash;

我不是 100% 清楚你当时想做什么。如果您想显示新闻 1 div,您可以这样做:

if(hash == 'news1') {
   $('#news1').show();
}

该脚本尚未经过测试。它执行以下步骤:

  1. 在 URL 中查找“#news”一词。在我们的例子中,如果没有任何单词。
  2. 每个 div ID 为 "new" 或类似
  3. 在这个 div 上加一个 CSS 来隐藏它。

    <script type="text/javascript">
    $(document).ready(function () {
        if(window.location.href.indexOf("#news") < 0) {
            $("div[id^='news']").css('display', 'none');
        }
    });
    </script>
    

试试这个:

var hash = window.location.hash;
$('[id^="'+hash+'"').hide();

试试这个:-

$(function(){
  var url = window.location.hash;
 
  if(url.indexOf('news') > -1){
    $("div[id^='news']").hide();
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="news1">News1</div><br>

<div id="news2">news2</div><br>
<div id="news3">news3</div><br>
<div id="event">event</div><br>

更新:(使用纯 JavaScript)

(function() {
   var url = window.location.hash;
  /* for testing set the hash to 'news' */
    url='news';

 if(url.indexOf('news') > -1){
 
  var bodyDOM = document.body;
  bodyDOM.querySelectorAll("[id^='news']").forEach(function(item, index){
    item.style.display='none';
  });
 }
})();
<div id="news1">News1</div><br>

<div id="news2">news2</div><br>
<div id="news3">news3</div><br>
<div id="event">event</div><br>