如何在巨大的html的id中搜索确切的“-p”并在它之后附加一个计数器,即-p + counter。请帮忙。
答案 0 :(得分:1)
如果您要求的是在所有ID中将-p替换为-pXX,其中XX是一个增加的计数器,您可以这样做:
var id, counter = 1;
var elems = document.getElementsByTagName("*");
for (var i = 0, len = elems.length; i < len; i++) {
id = elems[i].id;
if (id && id.indexOf("-p") != -1) {
elems[i].id = id.replace("-p", "-p" + counter++);
}
}
如果您只是尝试添加“+ counter”文本,那么您可以这样做:
var id;
var elems = document.getElementsByTagName("*");
for (var i = 0, len = elems.length; i < len; i++) {
id = elems[i];
if (id && id.indexOf("-p") != -1) {
elems[i].id = id.replace("-p", "-p+counter");
}
}
如果您想要的(您的原始帖子不是很清楚)是仅替换整个id为“-p”的id值,那么您可以使用:
var counter = 1;
var elems = document.getElementsByTagName("*");
for (var i = 0, len = elems.length; i < len; i++) {
if (elems[i].id == "-p") {
elems[i].id += counter++);
}
}
好的,第四次猜测你想要什么(基于你的评论)如果你想要-p替换只有当p后面没有另一个字母时才会被替换:
var id, counter = 1;
var elems = document.getElementsByTagName("*");
for (var i = 0, len = elems.length; i < len; i++) {
id = elems[i].id;
if (id) {
elems[i].id = id.replace(/\-p([\W_]|$)/, "-p" + counter++ + "$1");
}
}
而且,这是一个演示:http://jsfiddle.net/jfriend00/Ug7VN/
最后一个的jQuery版本可以这样工作:
var counter = 1;
$('[id]').each(function() {
this.id = this.id.replace(/\-p([\W_]|$)/, "-p" + counter++ + "$1");
});
答案 1 :(得分:1)
使用jQuery,这应该简单:
var counter = 0;
$('[id*="-p"]').each(function() {
$(this).attr('id', $(this).attr(id).replace('-p', '-p' + counter++));
});
修改:如果您只想要-p
中ID 结尾的项目,则可以使用以下内容(请注意不同的选择器):
var counter = 0;
$('[id$="-p"]').each(function() {
$(this).attr('id', $(this).attr(id).replace(/-p$/, '-p' + counter++));
});