从每个父母那里获取attr并为每个孩子设置

时间:2015-03-28 19:23:32

标签: javascript jquery html jquery-ui

我有来自jquery-ui的datepicker,我需要为每天设置一个id(一个类为.ui-state-default),格式为:year-month-day。

这是我的解决方案,我希望每天都能开展工作。现在我明白了:

  

ID =" 2015-2-1234567891011121314151617181920212223242526272829303112345678910111213141516171819202122232425262728293012345678910111213141516171819202122232425262728293031"

var year = $(".ui-state-default").parent('td').data('year');
var month = $(".ui-state-default").parent('td').data('month');
var day = $(".ui-state-default").parent('td').children().text();
        $(".ui-state-default").attr("id", "" + year + '-' + month + '-' + day + "");

这是datepicker代码的示例部分。

<tr>
                    <td class=" " data-handler="selectDay" data-event="click" data-month="2" data-year="2015">
                        <a class="ui-state-default" href="#">2</a>
                    </td>
                    <td class=" " data-handler="selectDay" data-event="click" data-month="2" data-year="2015">
                        <a class="ui-state-default" href="#">3</a>
                    </td>
                    <td class=" " data-handler="selectDay" data-event="click" data-month="2" data-year="2015">
                        <a class="ui-state-default" href="#">4</a>
                    </td>
                    <td class=" " data-handler="selectDay" data-event="click" data-month="2" data-year="2015">
                        <a class="ui-state-default" href="#">5</a>
                    </td>
                    <td class=" " data-handler="selectDay" data-event="click" data-month="2" data-year="2015">
                        <a class="ui-state-default" href="#">6</a>
                    </td>
                    <td class=" ui-datepicker-week-end " data-handler="selectDay" data-event="click" data-month="2" data-year="2015">
                        <a class="ui-state-default" href="#">7</a>
                    </td>
                    <td class=" ui-datepicker-week-end " data-handler="selectDay" data-event="click" data-month="2" data-year="2015">
                        <a class="ui-state-default" href="#">8</a>
                    </td>
                </tr>

1 个答案:

答案 0 :(得分:0)

我建议通过jquery遍历.ui-state-default元素,然后在其中执行相同的代码。 https://api.jquery.com/jquery.each/

$('.ui-state-default').each(function() {
    var parentData = $(this).parent().data();
    $(this).attr("id", "" + parentData.year + '-' + parentData.month + '-' + this.text + "");
});