如何在 jquery 每个循环中获取 kendo 日期选择器的 elementid

how to get the elementid of a kendo datepicker in a jquery each loop

假设我有几个输入都具有 class='dp' 和元素 ID(dp1、dp2、dp3 等)

    <INPUT id="dp1" class='dp' />
    <INPUT id="dp2" class='dp' />
    <INPUT id="dp3" class='dp' />

这些正在变成 kendo DatePickers:

$(".dp").kendoDatePicker( {....

稍后我们要依次访问它们中的每一个:

$(".dp").each( function (index, value) {


        });

.each块中,如何获取当前kendo DataPicker下的INPUT的elementid

你可以获得如下元素id

$(".dp").each( function (index, value) {
    var eleid = $(this).attr('id');
});

或使用 Kendo api

$(".dp").each( function (index, value) {
    var kele = $(value).kendoDateTimePicker().data();
    var keleid = kele.handler.element.context.id
});

kendoui 获取 input 的类名并将它们添加到它创建的包装器元素中,因此如果您有 3 个具有 dp 类名的输入元素,则在生成 kendoDatePicker 在这 3 个上 - 您的 DOM 中现在有 6 个元素具有 dp 类名。

你能做的就是只取 input.dp 个元素

$('input.dp').each(...)

或者采用其中没有 k-widget 类名的 .dp 元素

$(".dp:not(.k-widget)").each( ... )

这是一个工作片段(使用第二种方式):

$(".dp").kendoDatePicker();
$(".dp:not(.k-widget)").each( function (index, value) {
 alert($(this).attr('id'));
});
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.3.914/styles/kendo.common.min.css"/>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.3.914/styles/kendo.rtl.min.css"/>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.3.914/styles/kendo.silver.min.css"/>
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.3.914/styles/kendo.mobile.all.min.css"/>

<script src="http://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2016.3.914/js/kendo.all.min.js"></script>
<INPUT id="dp1" class='dp' />
<INPUT id="dp2" class='dp' />
<INPUT id="dp3" class='dp' />