使用javascript在datepicker日名称上添加点(。)

时间:2017-01-29 19:41:40

标签: javascript jquery datepicker

我正在定制日期选择器,除了一件事我能够做任何事情。在我的日历中,这一天是这样的:Su Mo Tu We Th Fr Sa, 它们是用这样的跨度编写的:

<span title="Sunday">Su</span>

我可以在每个名字后添加点吗?我尝试使用javascript,但我无法找到一种方法来捕捉这个范围......它没有id,没有类。我试过

$('span').attr('Sunday').append(".");

和许多组合,但似乎没有任何作用。如果有人做过这些,请分享你的智慧。

3 个答案:

答案 0 :(得分:3)

向发布的span添加点的正确语法是

$('span[title="Sunday"]').each(function(){
  $(this).text($(this).text + '.')
});

这会更改标题为Sunday的所有范围。

但是,我建议不要这样做。您可以使用CSS直观地附加.(点),而无需修改textnode中的值,而不是更改值:

span[title="Sunday"]::after {
  content: '.';
}

为了使其更有效而不必指定日期名称,我们可以使用与日期跨度的父级相匹配的选择器,您还没有提供,例如:

.daysContainer > span[title]::after {
   content: '.';
}

如果全天span是具有班级daysContainer的容器的直接子级。

注意:正如@Baruch所指出的那样,您可以将day属性中包含字符串title的所有跨度定位为span[title*=day]在:

span[title*="day"]::after {
  content: '.';
}

但是,例如,如果您的标题包含 today 昨天,那么它们也会受到影响,因此它可能有点过于笼统。

答案 1 :(得分:1)

您可以在规定的日期循环,然后将值连接到jQuery选择器。

示例:

HTML

<span title="Sunday">Su</span>
<span title="Monday">Mo</span>
<span title="Tuesday">Tu</span>
<span title="Wednesday">We</span>
<span title="Thursday">Th</span>
<span title="Friday">Fr</span>
<span title="Saturday">Sa</span>

的jQuery

$(document).ready(function() {
    var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
  days.forEach(function(day) {
    $('span[title='+day+']').append('.');
  });
});

工作小提琴:https://jsfiddle.net/as64jw3d/1/

答案 2 :(得分:1)

您没有指定您正在使用的日期选择器,因此我们假设您正在谈论jQuery datepicker,这是一种简单的方法(并且可以自定义任何文本/名称)显示)是改变i8n定义,如下所示:

datepicker.setDefaults({
        closeText: "Done",
        prevText: "Prev",
        nextText: "Next",
        currentText: "Today",
        monthNames: ["January", "February", "March", "April", "May", "June",
            "July", "August", "September", "October", "November", "December"],
        monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
        dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
        dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
        dayNamesMin: ["Su.", "Mo.", "Tu.", "We.", "Th.", "Fr.", "Sa."], // Note that I already added the dots after the mini day names notation
        weekHeader: "Wk",
        dateFormat: "dd/mm/yy",
        firstDay: 1,
        isRTL: false,
        showMonthAfterYear: false,
        yearSuffix: ""
    }
);

您可以使用与其他插件相同的方法。