Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
集合的Javascript选择器?_Javascript_Jquery Selectors - Fatal编程技术网

集合的Javascript选择器?

集合的Javascript选择器?,javascript,jquery-selectors,Javascript,Jquery Selectors,我有一个Javascript调用: SomeFunction('select#UserInformations_0__CountryId', somefunction(0)); SomeFunction('select#UserInformations_1__CountryId', somefunction(1)); SomeFunction('select#UserInformations_2__CountryId', somefunction(2)); 有没有办法让id选择器作为模板?我目

我有一个Javascript调用:

SomeFunction('select#UserInformations_0__CountryId', somefunction(0));
SomeFunction('select#UserInformations_1__CountryId', somefunction(1));
SomeFunction('select#UserInformations_2__CountryId', somefunction(2));
有没有办法让id选择器作为模板?我目前有一个基于选择控件选择填充的表单。想知道是否有一种方法可以使它更灵活,而不会用尽所有可能的索引数

我正在根据模型集合调用一个div。当父对象和子对象之间存在1:1的关系时,调用工作正常。但是,正如我们介绍的1:many,这是一个很难实现的过程

我不是一个真正的javascript爱好者,最初的调用是这样的,我只是想让它工作起来。我在想是否可以将“UserInformations\u CountryId”制作成模板或正则表达式

$(document).ready(function () {
    SomeFunction('select#UserInformations_CountryId', somefunction());
    // above line works before. I just need to make it work for multiple instances
}

我不知道你所说的“模板”是什么意思,但如果你愿意,你当然可以使用循环:

var i;
for (i = 0; i < 3; ++i) {
    SomeFunction('select#UserInformations_' + i + '__CountryId', somefunction(i));
}
vari;
对于(i=0;i<3;++i){
SomeFunction('select#UserInformations_u'+i+'uuu CountryId',SomeFunction(i));
}

如果这是设置事件处理程序,我们可以做一些更一般的事情,但您引用的代码没有设置事件处理程序。

您可以在函数中创建选择器,然后使用该函数:

function makeSelector(num) {
    return 'select#UserInformations_' + num + '__CountryId';
}

SomeFunction(makeSelector(0), somefunction(0));
SomeFunction(makeSelector(1), somefunction(1));
SomeFunction(makeSelector(2), somefunction(2));
或者,您可以将这两个操作合并为一个只接受选择器编号的操作:

function SomeFunction(num) {
   var sel = makeSelector(num);
   var other = someFunction(num);
   // ... other code
}
当然,只要传递一个数字,就可以使用
for
循环迭代多个选择器数字


仅供参考,通常没有理由使用诸如
选择#用户信息(UserInformations)u 0(u CountryId)
这样的选择器,因为
用户信息(u 0)u CountryId
会更快,并且ID在页面中已经是唯一的。

这实际上是在文档准备就绪时加载的。所以从技术上讲,循环实现可能无法按预期工作。@Patrick:“文档准备就绪”与此无关。如果问题中的三行行行得通,上面的行得通,句号。如果上述方法不起作用(例如,因为元素还没有出现),那么问题中的三行也不会起作用(例如,因为元素还没有出现)。