从每个父对象获取attr,并为每个子对象设置attr

Get attr from each parent and set for each child

本文关键字:对象 attr 设置 获取      更新时间:2023-09-26

我有来自jquery ui的日期选择器,我需要设置每天的id(默认为class.ui状态的a),格式为:年月日。

这是我的解决方案,我想让它每天都在工作。现在我得到这个:

id="2015-2-123456789101112131415161718192021222324252627829303112345678910111213141516171819202122232425262728293012345678910112213141516172819202122231262728293031"

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 + "");

这是日期选择器代码的示例部分。

<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>

我建议通过jquery对.ui状态默认元素进行迭代,然后在其中执行相同的代码。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 + "");
});