2013-01-04 89 views
1

我正在製作一個顯示商店開放時間的簡單插件。我編碼它看起來相當不錯。它顯示爲與我在下面輸入的內容類似的列表。用Javascript說'今天'

週一 - 9:00 AM至5:00 PM
日 - 9:00 AM至5:00 PM
日 - 9:00 AM至5:00 PM

...等等。生成的HTML看起來像:

<div id="%id%container"> 
    <div id="%id%title">%text="Opening Hours"%</div> 
    <ul class="%id%hours"> 
     <li>Monday<span>%text="9:00AM - 5:00PM"%</span></li> 
     <li>Tuesday<span>%text="9:00AM - 5:00PM"%</span></li> 
     <li>Wednesday<span>%text="9:00AM - 5:00PM"%</span></li> 
     <li>Thursday<span>%text="9:00AM - 5:00PM"%</span></li> 
     <li>Friday<span>%text="9:00AM - 5:00PM"%</span></li> 
     <li>Saturday<span>%text="9:00AM - 5:00PM"%</span></li> 
     <li>Sunday<span>%text="9:00AM - 5:00PM"%</span></li> 
    </ul> 
</div> 

假設今天是星期二。而不是閱讀「星期二」,我希望它只是說'今天'。有沒有一種方法可以用Javascript(客戶端)完成這個任務?

謝謝。

+0

歡迎的StackOverflow!你能否展示你使用的代碼,以便回答者可以知道如何改變它? –

+2

而不是將它放在評論中,你可以編輯它到你的文章(包括換行符?)它也是一個好主意,通過選擇代碼和命令來縮進它 - K –

+0

[new Date()。getDay( )](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getDay) –

回答

0

給你,純JS的解決方案:

<div id="%id%container"> 
    <div id="%id%title">%text="Opening Hours"%</div> 
    <ul class="%id%hours"> 
     <li>Monday<span>%text="9:00AM - 5:00PM"%</span></li> 
     <li>Tuesday<span>%text="9:00AM - 5:00PM"%</span></li> 
     <li>Wednesday<span>%text="9:00AM - 5:00PM"%</span></li> 
     <li>Thursday<span>%text="9:00AM - 5:00PM"%</span></li> 
     <li>Friday<span>%text="9:00AM - 5:00PM"%</span></li> 
     <li>Saturday<span>%text="9:00AM - 5:00PM"%</span></li> 
     <li>Sunday<span>%text="9:00AM - 5:00PM"%</span></li> 
    </ul> 
</div> 
var dayNames = ["Sunday","Monday","Tuesday","Wednesday","Thirsday","Friday","Saturday"]; 
var dayOfWeek = new Date().getDay(); 
var dayOfWeekText = dayNames[dayOfWeek] 
var elements = document.querySelectorAll('div[id="%id%container"] ul[class="%id%hours"] li'); 

window.onload = function(){ 
    for (var i=0; i < elements.length; i++){ 
     if (elements[i].innerHTML.indexOf(dayOfWeekText) != -1){ 
      elements[i].innerHTML = elements[i].innerHTML.replace(new RegExp(dayOfWeekText),'Today'); 
      return false; 
     } 
    } 
} 

JSFIDDLE

3

您應該能夠利用javascript中的getDay()方法來確定一週中的哪一天,然後以編程方式將其替換。

http://www.w3schools.com/jsref/jsref_getday.asp

編輯:看到源代碼後,我想如果你加入ID屬性設置爲參考列表項這會更容易些。然後,你可以使用一些JavaScript類似下面的,如果你的編號是day0,第1天,第2天,等

<script type="text/javascript"> 
    var d = new Date(); 
    var obj = document.getElementById('day' + d.getDay); 
    // TODO - replace day of the week on the 'obj' object 
</script> 

不知道,如果你打算使用像jQuery或不是一個JavaScript框架,但它將使一個包含源代碼的代價略少。

0

看一看moment.js。它應該讓你做到你想要的。