获取特定元素的数据值

时间:2015-04-24 20:07:31

标签: javascript jquery arrays

当创建允许用户选择他们希望任务运行的月,日,小时和分钟的调度程序类型系统时,我创建了代表每个选项的DIV。我使用"数据值"存储作为表示的实际整数值。

当他们提交表单时,我需要收集这些信息以放入数组并传递给AJAX。然而,我正在努力弄清楚如何这样做。我需要基本上花几个月的时间和#34;选择",所有小时的课程"选择"等等。任何人都可以阐明我如何能够这样做吗?

我想有一些方法可以检查DIV容器中的每个元素,但我不知道该怎么做。

var monthsContainer = $("#schedMonthsContainer");
var daysContainer = $("#schedDaysContainer");

for (i = 0; i < MonthsOfYear.length; i++)
{
    var month = MonthsOfYear[i];
    var monthEl = $("<div>", { 'class': "timeSegment selected", 'data-value': i, text: month });
    monthsContainer.append(monthEl);
}

for (i = 0; i < DaysOfWeek.length; i++)
{
    var day = DaysOfWeek[i];
    var dayEl = $("<div>", { 'class': "timeSegment selected", 'data-value': i, text: day });
    daysContainer.append(dayEl);
}

HTML

                            <div class="twelveSegmentContainer">
                                <div id="schedMonthsContainer"></div>
                            </div>

                            <div class="sevenSegmentContainer">
                                <div id="schedDaysContainer"></div>
                            </div>

1 个答案:

答案 0 :(得分:0)

以下内容将找到 timeSegment类以及selected类的所有元素:

$('.timeSegment.selected')

因此,使用上述内容,您可以检索data-value属性的值,如下所示:

$('.timeSegment.selected').each(function(index) {
    console.log($(this).data('value'));
});

更新

找出哪个父级属于$(this)可以使用:parent()完成,或者您可以对某个元素使用find()

选项1:使用parent()

$('.timeSegment.selected').each(function(index) {
    var parent = $(this).parent();
    console.log(parent.attr('id'));
    console.log($(this).data('value'));
});

以上内容将检索父元素的id,因此可以是schedMonthsContainer或其他容器之一。

选项2:在特定元素上使用find()

$('#schedMonthsContainer').find('.timeSegment.selected').each(function(index) {
    console.log($(this).data('value'));
});

以上内容仅检索月份容器中包含timeSegmentselected类的元素。