如果 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>
脚本尚未经过测试。它执行以下步骤:
- 在 URL 中查找单词"#news"。在我们的例子中,如果没有任何词。
- 对于 ID 为"new"或类似内容的每个div
-
向此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();