0

我确信这已经被回答过,但我找不到正确的搜索词。

我想使用 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。

谢谢艺术

4

2 回答 2

0

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

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

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

于 2012-07-06T13:56:34.610 回答
0

看起来您正在查看具有多个属性的单个元素,并且您想对与某个正则表达式匹配的属性执行某些操作,例如/^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 演示

于 2012-07-06T14:05:38.617 回答