【问题标题】:jQuery: select all inputs with unique id (Regex/Wildcard Selectors)jQuery:选择具有唯一 ID 的所有输入(正则表达式/通配符选择器)
【发布时间】:2011-02-12 00:44:19
【问题描述】:

我在一个网络表单上有一些文本框,它们的 id 如下:

txtFinalDeadline_1
txtFinalDeadline_2
txtFinalDeadline_3
txtFinalDeadline_4

在我的 jQuery 中,我如何找到所有这些以便为它们赋值。在我有下划线并且它们都被命名为 txtFinalDeadline 之前,我可以这样做并且它有效。

$(this).find("#txtFinalDeadline").val(formatDate);

然而,那时他们都被命名为同一个东西。现在我在名称后面加上了 _x,但我不确定如何为它们分配与以前相同的值。

【问题讨论】:

    标签: jquery regex jquery-selectors wildcard


    【解决方案1】:

    我不知道我是否可以保证“按顺序”,但是这个选举人应该可以工作:

    $(this).find('input[id^=textFinalDeadline_]').val(formatDate);

    即使这样,jQuery 也被优化为以特殊方式处理ids,并且可能只处理 1 个 id。

    更好的方法是让这些文本字段使用一个类(可能是date),这样您就可以使用'.date' 选择器。

    【讨论】:

      【解决方案2】:

      有多种方法可以进行正则表达式或通配符选择:

      使用 jQuery 选择器的内联通配符:

      $('#textFinalDeadline_\\S*').val(formatDate);
      

      更新: 我注意到这个方法自 jQuery 1.3.2 起不再有效。

      使用 CSS3 选择器:

      $('input[id^=textFinalDeadline_]').val(formatDate);
      

      使用.filter() & match()

      $('input').filter(function(){
        return this.id.match(/txtFinalDeadline_*/);
      }).val(formatDate);
      

      最后你可能想使用regex selector

      $('input:regex(id, txtFinalDeadline_*)').val(formatDate);
      

      【讨论】:

        【解决方案3】:

        Child Selector 对你有帮助吗?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-09-16
          • 1970-01-01
          • 2015-01-11
          • 2018-07-29
          • 1970-01-01
          • 2021-01-04
          • 2020-02-05
          相关资源
          最近更新 更多