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

时间:2015-10-28 22:00:54

标签: javascript jquery

我有以下Javascript文件:

$(document).ready(function(){

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

});

我会接受遵循此规则的所有ID:

#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。谢谢。

3 个答案:

答案 0 :(得分:0)

为什么不使用for循环?...

public class FlywayIntegrator implements Integrator {
    @Override
    public void integrate(Configuration c, SessionFactoryImplementor sfi,
                          SessionFactoryServiceRegistry sfsr) {
        sfi.addObserver( new SessionFactoryObserver() {
            @Override
            public void sessionFactoryCreated(SessionFactory factory) {
                //now, after schema-export, flyway migration...
            }

            @Override
            public void sessionFactoryClosed(SessionFactory factory) {
            }
        } );
    }
//... other methods
}

答案 1 :(得分:0)

JQuery选择器不支持正则表达式模式,这显然是您想要为id命名指定模式的方式。

您指定的内容是ID为registry_donations_attributes_且具有css类0-9_data_donazione的元素,这在此上下文中没有多大意义(这不应该让您感觉到bas,selector语法可能很复杂。)

如果可能,请为元素分配一个公共css类(如_data_donazione)并使用选择器,如下所示:$("._data_donazione")

或者,使用属性前缀和后缀选择器的组合(不推荐;要刻意纠正你,无论如何都必须检查id的数字部分):

$("*[id^='registry_donations_attributes_'][id$='_data_donazione]")

答案 2 :(得分:0)

您可以在直接jQuery选择器中做的最好的事情是合并starts withends with属性选择器。



var items = $("[id^='registry_donations_attributes_'][id$='_data_donazione']");
console.log(items.toArray());

<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>
&#13;
&#13;
&#13;

或者,您可以使用带有正则表达式的过滤器

&#13;
&#13;
var items = $("*").filter(function() {
  return this.id.match(/registry_donations_attributes_\d*_data_donazione/);
});
console.log(items.toArray());
&#13;
<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>
&#13;
&#13;
&#13;