2012-07-11 30 views
4

如果頁面的url包含某個單詞,我需要隱藏div。感謝這個網站,我已經能夠成功地找到url是否包含這個詞。此代碼的工作:如果URL包含單詞,請隱藏div

<script type="text/javascript"> 
if (window.location.href.indexOf("Bar-Ends") != -1) { 
alert("your url contains bar ends"); 
} 
</script> 

但由於某種原因,它不會工作隱藏一個div,像這樣:

<script type="text/javascript"> 
if (window.location.href.indexOf("Bar-Ends") != -1) { 
$("#notBarEnds").hide(); 
} 
</script> 

<div id="notBarEnds">this is not bar ends</div> 

任何人有任何的想法有什麼不對這個代碼? 任何幫助是極大的讚賞 感謝

+1

推遲該段的執行,因爲該元素不存在(還)當腳本進行評估。 – 2012-07-11 15:55:03

+0

根據您提供的內容,您不會在DOM準備好時調用此代碼,因此元素'$('#notBarEnds')'未準備好,您無法針對它調用事件。把它包裝在'$(function(){// code})' – Ohgodwhy 2012-07-11 15:55:44

+1

我想你也可以在js上放一個$(document).ready(),它會工作 – 2012-07-11 15:56:45

回答

10

通知重新排序:

<div id="notBarEnds">this is not bar ends</div> 

<script type="text/javascript"> 
if (window.location.href.indexOf("Bar-Ends") != -1) { 
$("#notBarEnds").hide(); 
} 
</script> 

或者

<script type="text/javascript"> 
$(document).ready(function() { 
    if (window.location.href.indexOf("Bar-Ends") != -1) { 
     $("#notBarEnds").hide(); 
    } 
} 
</script> 

等待整個文件是 「準備」

+0

謝謝喬,那個工​​作很完美! – 2012-07-11 16:11:58

2

嘗試:

$(document).ready(function() { 
    if (window.location.href.indexOf("Bar-Ends") != -1) { 
    $("#notBarEnds").hide(); 
    } 
}); 

當腳本運行時,您的div未必尚未加載。

0

您正在構建HTML時正在運行內聯腳本,在腳本運行時沒有div命名爲#notBarEnds,您需要在文檔加載後將其作爲函數運行。

0

我把它寫不檢查它,如果還是不行的變化德正則表達式:d

$(document).on('ready', function() 
{ 
    if(window.location.href.match(/Bar\-Ends/i)) 
     $("#notBarEnds").hide(); 
});