首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在名称中选择不同的id和数字

在名称中选择不同的id和数字
EN

Stack Overflow用户
提问于 2015-10-28 22:00:54
回答 3查看 36关注 0票数 0

我有以下Javascript文件:

代码语言:javascript
复制
$(document).ready(function(){

     $( "#registry_donations_attributes_.0-9_data_donazione" ).datepicker({ dateFormat: 'yy-mm-dd' }).val();

});

我将接受所有遵循这个规则的id:

代码语言:javascript
复制
#registry_donations_attributes_0_data_donazione
#registry_donations_attributes_1_data_donazione
#registry_donations_attributes_2_data_donazione
#registry_donations_attributes_3_data_donazione
                        ...
#registry_donations_attributes_n_data_donazione

我试过"#registry_donations_attributes_.0-9_data_donazione",但它不起作用。我对jquery不太了解。谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-28 22:12:51

JQuery选择器不支持regex模式,这显然是您希望为id命名指定模式的方式。

相反,您指定的是id registry_donations_attributes_的元素,这些元素具有css类0-9_data_donazione,这在这个上下文中没有多大意义(这不应该让您感到基本,选择器的语法可能是复杂的)。

如果可能,将一个公共css类(如_data_donazione )分配给元素,并按如下方式使用选择器:$("._data_donazione")

或者,使用属性前缀和后缀选择器的组合(不推荐;要进行艰苦的更正,无论如何必须检查id的数字部分):

代码语言:javascript
复制
$("*[id^='registry_donations_attributes_'][id$='_data_donazione]")
票数 0
EN

Stack Overflow用户

发布于 2015-10-28 22:07:17

你为什么不使用for循环呢?

代码语言:javascript
复制
n = 10;
for (var x = 0; x < n; x++){
    $( "#registry_donations_attributes_" + x + "_data_donazione").datepicker({ dateFormat: 'yy-mm-dd' }).val();
}
票数 0
EN

Stack Overflow用户

发布于 2015-10-28 22:13:35

在一个直接的jQuery选择器中,您能做的最好的事情就是组合一开始尾声属性选择器。

代码语言:javascript
复制
var items = $("[id^='registry_donations_attributes_'][id$='_data_donazione']");
console.log(items.toArray());
代码语言:javascript
复制
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="registry_donations_attributes_0_data_donazione"></div>
<div id="registry_donations_attributes_1_data_donazione"></div>
<div id="registry_donations_attributes_2_data_donazione"></div>
<div id="not"></div>

或者,您可以使用带有正则表达式的筛选器。

代码语言:javascript
复制
var items = $("*").filter(function() {
  return this.id.match(/registry_donations_attributes_\d*_data_donazione/);
});
console.log(items.toArray());
代码语言:javascript
复制
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="registry_donations_attributes_0_data_donazione"></div>
<div id="registry_donations_attributes_1_data_donazione"></div>
<div id="registry_donations_attributes_2_data_donazione"></div>
<div id="not"></div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33402369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档