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

时间:2017-06-15 15:30:27

标签: javascript show-hide

我怎样才能隐藏以id" news"开头的div?但也包含一些像" news1" "新闻2"如果URL哈希不包含" news"。

喜欢隐藏someurl.com/#events。但要显示任何"新闻" div someurl.com/news1

需要常规JS

感谢,

5 个答案:

答案 0 :(得分:1)

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

  1. 在网址中搜索“#news”字样。在我们的例子中,如果没有任何字词。
  2. 对于ID为“new”或类似
  3. 的每个div
  4. 将CSS添加到此div以隐藏它。

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

答案 1 :(得分:1)

试试这个: -

&#13;
&#13;
$(function(){
  var url = window.location.hash;
 
  if(url.indexOf('news') > -1){
    $("div[id^='news']").hide();
  }
});
&#13;
<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>
&#13;
&#13;
&#13;

更新:(使用纯JavaScript)

&#13;
&#13;
(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';
  });
 }
})();
&#13;
<div id="news1">News1</div><br>

<div id="news2">news2</div><br>
<div id="news3">news3</div><br>
<div id="event">event</div><br>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

如果你把一个课程放在你想要申请的所有div上,你可以这样做:

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

答案 3 :(得分:0)

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

var hash = window.location.hash;

我不是100%清楚你想做什么。如果你想显示news1 div,你可以这样做:

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

答案 4 :(得分:0)

试试这个:

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