0

可能这已经回答了,但我找不到。

我需要为每个图像显示超过 200-300 个图像和 3-6 个文本字段,我希望用户能够选择具有相同第二个元素的所有图像。

示例:选择图像 image[487][1]、image[488][1]、images[489][1]、images[something][1].. 子元素为“1”的所有元素。

<input name="image[487][1]" type="textfield" >
<input name="image[487][8]" type="textfield" >
<input name="image[487][9]" type="textfield" >
<input name="image[487][11]" type="textfield" >

<input name="image[488][1]" type="textfield" >
<input name="image[488][8]" type="textfield" >
<input name="image[488][9]" type="textfield" >
<input name="image[488][11]" type="textfield" >

我已经做的是我使用正则表达式和每个循环。但我相信有更好的方法。

$('input[name^="images"]').each(function() {
      var regExp = /\[([^)]+)\]/;
      var matches = regExp.exec($(this).attr('name'));

  var numb = matches[1].substring(matches[1].indexOf('[')+1, matches[1].length);
      if(parseInt(numb)==1)
          // DO SOMETHING HERE

 });

谢谢,请建议我是否可以更改标题或其他内容以便将来更轻松地搜索。

4

2 回答 2

5

你可以试试这个,以选择器开始和结束

$('input[name^="images"][name$="[1]"]')
于 2013-11-12T10:38:14.933 回答
1

KISS = 保持简单和简洁
如果您的元素是动态生成的并且您需要识别其中的很多,为什么不生成一个类属性呢?正则表达式解析效率低下,最好避免。

添加一个类属性来识别那些特定的图像

于 2013-11-12T10:40:19.693 回答