使用jquery在.attr()上使用正则表达式查找.each

我确信之前已经回答过,但我找不到正确的搜索字词。

我想使用jquery [1.3.2] .each()函数来搜索对象的集合名称+ var(i) info1="value1", info2="value2" (i)val对于函数是未知的,可能是0 + n

我正在解析函数的id,所以我的问题是

 function findInfos(hostId){ $($('#'+hostId).attr('[info]')).each(function(){ alert($(this).attr('[info(i)]')); }); } 
  1. 我该怎么插入(i)
  2. 是否可以搜索部分正则表达式而不是使用(i),(info *) infoA, infoB
  3. 给定对象ID将传递给函数并且未知.each()的正确结构使用是什么

我确实看了http://stackoverflow.com/questions/4606133/jquery-each-and-attr-functions但无法弄清楚如何将.each()限制为传递的ID。

thx艺术

看起来您正在查看具有多个属性的单个元素,并且您希望对与某个正则表达式匹配的属性执行某些操作,例如/^info\d$/ 。 如果是这样,你想要做的是循环DOM元素的attributes NamedNodeMap

 ​var el = $('#foo'); var attributes = el[0].attributes; $.each(attributes,function(i,attr){ var name = attr.nodeName; var val = attr.nodeValue; var regex = /^info\d$/; if(name.match(regex)) { //Do something with your matched attributes } });​ 

用jQuery 1.3.2测试

jsFiddle DEMO

如果我没弄错的话,我相信你想要这样的东西:

 function findInfos(hostId) { $('#' + hostId).attr('[info]').each(function(i) { alert($(this).attr('[info'+i+']')); }); }​ 

此外,避免为多个对象分配相同的ID,因为这可能会导致一些讨厌的错误。