JQuery 循环不工作

JQuery looping not working

我正在处理文本框上的 JQuery 循环,这样每当 classname="xyz" 时,它就需要将日期时间控件放在那里,否则文本框需要作为我所在的常规文本框工作已设置验证。我在使用 Jquery .each 循环时遇到问题。如果我遗漏了什么,有人可以告诉我吗?

<script>
    $(".xyz").each(function () {

        if ($(this).hasClass('xyz')) {
            $(".xyz").datepicker();
        }})
</script>

<asp:TextBox ID="txt" runat="server" CssClass="xyz"></asp:TextBox>

您不需要第二个 class 选择器。在循环中,您已经使用 "xyz" class 定位每个元素。所以只需使用 "this" 关键字来执行您的操作。

<script>
    $(".xyz").each(function () {
      $(this).datepicker();
    });
</script>

<asp:TextBox ID="txt" runat="server" CssClass="xyz"></asp:TextBox>

一个jquery选择器(如$(".xyz"))returns一组元素。当您将方法附加到选择器时,该方法将应用于集合中的所有元素。

所以不需要循环,你只需要

$(".xyz").datepicker();

JQuery 会为您做循环。会

  1. 获取class为xyz
  2. 的所有元素列表
  3. 在列表中的每个元素上,运行 datepicker() 方法。

您唯一需要 each 的时候是您想要提供自己的功能时,在这种情况下不需要。

我已经解决了这个问题,认为它可能对以后的人有所帮助。这是解决方案: 在文本框中:

<asp:TextBox ID="abc" runat="server" CssClass="f-c"></asp:TextBox>

<script type="text/javascript">
    $(document).ready(function () {
        $(".ee").each(function () {
            if ($(this).hasClass('ee')) {
                //alert($(".ee").length)
                $(this).datepicker();
            }

        })
    });
</script>

隐藏代码:

abc.CssClass = abc.CssClass + "ee";

使用这个文本框作为常规文本框和日期时间选择器。