我有以下 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/