使用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)]')); }); }
- 我该怎么插入(i)
- 是否可以搜索部分正则表达式而不是使用(i),(info *)
infoA, infoB
- 给定对象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,因为这可能会导致一些讨厌的错误。