jQuery:选择具有唯一 ID 的所有输入(正则表达式/通配符选择器)

发布于 2024-08-30 00:38:13 字数 362 浏览 5 评论 0原文

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

txtFinalDeadline_1
txtFinalDeadline_2
txtFinalDeadline_3
txtFinalDeadline_4

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

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

然而,那时它们都被命名为同一个东西。现在我在名称后面有 _x,我不知道如何为它们分配与以前相同的值。

I have some textboxes on a webform that have ids like this:

txtFinalDeadline_1
txtFinalDeadline_2
txtFinalDeadline_3
txtFinalDeadline_4

In my jQuery how do I find all of those in order to assign a value to them. Before I had the underscore and they were all named txtFinalDeadline I could do this and it worked.

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

However, that was when they were all named the same thing. Now I have the _x after the name and I'm not sure how to go about assigning that same value as before to them.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

余生一个溪 2024-09-06 00:38:13

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

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

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

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

I don't know if I can guarantee "in order", but this elector should work:

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

Even then, jQuery is optimized to handle ids in a special way, and may only process 1 id.

A better way would be to have these textfields use a class (perhaps date) so you could just use the '.date' selector.

燃情 2024-09-06 00:38:13

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

使用 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);

最后你可能想使用 正则表达式选择器

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

There are multiple ways to do a regex or wildcard select:

Using jQuery selector's inline wildcards:

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

update: I noticed that this method is no longer working since jQuery 1.3.2.

Using CSS3 selectors:

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

Using .filter() & match():

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

At last you might want to use a regex selector.

$('input:regex(id, txtFinalDeadline_*)').val(formatDate);
无法回应 2024-09-06 00:38:13

子选择器对您有帮助吗?

Does Child Selector help you?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文