如何在巨大的 html 的 id 中精确搜索“-p”并在其后附加一个计数器,即 -p+counter。请帮忙。
最佳答案
如果您要求的是在所有 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");
});
关于javascript - 搜索并替换 "-p",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8549849/