我正在用ASP.NET MVC编写应用程序。与传统的ASP.NET相比,您需要更多地负责在生成的页面中创建所有In。ASP.NET会给你一个令人讨厌但唯一的ids。
我想添加一个快速的小jQuery脚本来检查我的文档中是否有重复的ids。它们可以是DIVS、图像、复选框、按钮等的ids。
<div id="pnlMain"> My main panel </div>
<div id="pnlMain"> Oops we accidentally used the same ID </div>
我正在寻找一个设置和忘记类型的实用程序,它会在我做一些粗心大意的事情时警告我。
是的,我只会在测试期间使用它,而且也欢迎其他的选择(比如firebug插件)。
发布于 2009-02-04 03:32:46
以下命令将在控制台中记录一个警告:
// Warning Duplicate IDs
$('[id]').each(function(){
var ids = $('[id="'+this.id+'"]');
if(ids.length>1 && ids[0]==this)
console.warn('Multiple IDs #'+this.id);
});
发布于 2011-02-11 17:10:11
这个版本稍微快一些,你可以把它复制到一个书签按钮上,使它成为一个书签小程序。
javascript:(function () {
var ids = {};
var found = false;
$('[id]').each(function() {
if (this.id && ids[this.id]) {
found = true;
console.warn('Duplicate ID #'+this.id);
}
ids[this.id] = 1;
});
if (!found) console.log('No duplicate IDs found');
})();
发布于 2011-03-19 02:15:49
我有一个很大的页面,所以脚本运行太慢,无法完成(多个“继续脚本”消息)。这可以很好地工作。
(function () {
var elms = document.getElementsByTagName("*"), i, len, ids = {}, id;
for (i = 0, len = elms.length; i < len; i += 1) {
id = elms[i].id || null;
if (id) {
ids[id] = ids.hasOwnProperty(id) ? ids[id] +=1 : 0;
}
}
for (id in ids) {
if (ids.hasOwnProperty(id)) {
if (ids[id]) {
console.warn("Multiple IDs #" + id);
}
}
}
}());
https://stackoverflow.com/questions/482763
复制相似问题