隐藏 div 如果 URL 哈希在 Javascript 中以单词开头



如果 URL 哈希不包含"news",我怎么能隐藏以 id "news" 开头但还包含"news1"news2" 等数字的div。

如果someurl.com/#events则隐藏。 但如果someurl.com/news1,则显示任何"新闻"div

在常规JS中需要

谢谢

试试这个:-

$(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>

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

  1. 在 URL 中查找单词"#news"。在我们的例子中,如果没有任何词。
  2. 对于 ID 为"new"或类似内容的每个div
  3. 向此div 添加一个 CSS 以隐藏它。

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

你希望应用它的所有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%清楚你想做什么。如果你想显示 news1div,你可以这样做:

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

试试这个:

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

最新更新