0

我在一个包含标签和 5 个选择的 div 上有一个名为 datetimeselect 的类。我想为每个选择设置一个自定义宽度。然而,我写的咖啡脚本只影响类的第一个 div,而不影响该类的其余 div。如何让我的代码使用类 datetimeselect 来影响所有 div?

我的咖啡脚本:

jQuery ->

    a = [75, 110, 60, 80, 60]

    $(".datetimeselect").children('select').eq(0).css("width", a[0])

    $(".datetimeselect").children('select').eq(1).css("width", a[1])

    $(".datetimeselect").children('select').eq(2).css("width", a[2])

    $(".datetimeselect").children('select').eq(3).css("width", a[3])

    $(".datetimeselect").children('select').eq(4).css("width", a[4])

html/erb 代码:

<div class="well datetimeselect">
    <%= f.label :time_start, "Time Start:" %> 

    <%= f.datetime_select :time_start, ampm: true, :class => "field span1" %>
</div>

<div class="well datetimeselect">
    <%= f.label :time_end, "Time End:" %> 

    <%= f.datetime_select :time_end, default: 1.days.from_now, ampm: true, :class => "field span1" %>
</div>
4

2 回答 2

1

根本不要使用.eq()。使用.each()代替

$(".datetimeselect").each(function(idx, el) {
    $(el).children("select").css("width", a[idx % a.length]);
});
于 2013-09-15T21:26:53.897 回答
1

您可以使用.css()回调函数:

$(".datetimeselect > select").css('width', function(ind) {
   return a[ind];
});

咖啡脚本:

$(".datetimeselect > select").css 'width', (index) -> a[index]
于 2013-09-15T21:28:05.160 回答