将数组值传递给jQuery选择器方法?

时间:2013-02-08 10:35:34

标签: jquery jquery-selectors

目前在我的JS中我静态地定义了我想要将我的datepicker脚本与之关联的输入ID。

像这样:

$('datepicker1').glDatePicker();

然而为了使这个动态我已经将它重构为for循环,因此对于需要datepicker的多个字段,我可以在该循环中调用它们。

dateArray[y] =  "datePicker" + i;
//out of loop scope

for (i = 0; i < dateArray.length; i++)
    {
        $(dateArray[i]).glDatePicker();

    }

它似乎不起作用,我通过将值打印到日志来检查数组中是否有值。

这是jQuery的限制吗?

由于

3 个答案:

答案 0 :(得分:3)

您需要将其设为"#"

的ID
 $("#" + dateArray[i]).glDatePicker();

答案 1 :(得分:1)

  

我想将我的datepicker脚本与。

相关联的输入ID

我认为你错过了id选择器

$('#'+ dateArray[i]).glDatePicker();
---^---here

答案 2 :(得分:1)

最好通过将所有id连接成一个字符串来对glDatePicker()进行单个jQuery调用

var allIds = '';
for (i = 0; i < dateArray.length; i++) {
  allIds += '#' + dateArray[i] + ',';
}
$(allIds).glDatePicker();

或者甚至更好,将一个班级放到所有这些领域,然后简单地调用

$(".datepicker").glDatePicker();

还有另一个单一的呼叫解决方案(假设你的所有id都以“datePicker”开头):

$('[id^="datePicker"]').glDatePicker(); // selects all elements that have id starting with datePicker