我正在制作一个显示商店营业时间的简单插件。我已经对它进行了编码,看起来还不错。它显示为类似于我在下面键入的列表。

星期一-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(客户端)来实现?

谢谢。

最佳答案

这是纯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

关于javascript - 用JavaScript说“今天”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14149646/

10-12 00:11
查看更多