jquery - 如何使用 jQuery 获取不同的 ID?

标签 jquery

我有以下 jQuery 代码,它读取与代码中显示的 ID 匹配的网页的所有 ID:

$('.tooltip[id*="_UI_A_"]').each(function(){
    console.log(this.getAttribute('id'));
});

运行此代码时,它会返回以下 ID:

P2000_UI_A_5000_0
P2000_UI_A_5000_1
P2000_UI_A_5000_2
P2000_UI_A_5000_3
P2000_UI_A_5065
P2000_UI_A_5100

我的问题是,根据上面返回的 ID,我不想返回任何“_0 到 _3”ID(这是一个单选组),而只想返回不同的值,当涉及到这些 ID。

所以我最终想要的数据实际上就是:

P2000_UI_A_5000
P2000_UI_A_5065
P2000_UI_A_5100

如何根据我的原始 jQuery 代码实现此目的?

最佳答案

更新

忽略之前的答案,因为它使用了 .unique()它只能用于 DOM 元素的数组(不是任何数组)

改用它(再次使用 split() slice() 来获取 id 的正确部分)

var allIds = $('.tooltip[id*="_UI_A_"]').map(function () {
    return this.id.split('_').slice(0, 4).join('_');;
    }).get();

var uniqueIds = $.grep(allIds,function(v,k){
                return $.inArray(v,allIds) === k;
            });

uniqueIds变量保存按照 DOM 中出现的顺序列出的 id(固定)

使用每个 id您可以在数组上使用任何循环或

$.each( uniqueIds, function(index, value){
  // do what you want with value 
  console.log(value);
});

原始答案(使用了错误的函数) <罢工>

<罢工>

怎么样

$.unique( $('.tooltip[id*="_UI_A_"]').map(function(){
    return (this.id.split('_').slice(0,4).join('_');
}).get() );

该代码使用 $.unique() 方法来保持结果唯一,并且还使用 _ 仅保留每个字符串的前 4 部分(split() 分隔的部分)和 slice()

关于jquery - 如何使用 jQuery 获取不同的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15284710/

相关文章:

javascript - 数据表无法响应作为示例

jquery - 在 jQuery 中通过 HTML5 数据属性选择元素

jquery - 如何判断 jQuery UI 可排序元素何时被移动且处于无效状态

javascript - 使用 jquery 通过选择选项更改输入文本

javascript - JQuery Click 事件在 Firefox 和 Safari 浏览器中不起作用

javascript - jquery查找下一个没有属性的元素

javascript - 如何从不同的数据列表中选择值并将其一次显示在同一个文本区域框中?

javascript - select2 onchange 加载前 5 个选定的标签到 div 1,其余的应该移动到 div 2

javascript - 检查地址路径是否可用

javascript - 如何动态地将文本附加到模式中?