繁体   English   中英

搜索并替换“-p”

[英]Search and replace “-p”

如何在巨大的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");
});

使用jQuery,这应该是这样简单:

var counter = 0;
$('[id*="-p"]').each(function() {
    $(this).attr('id', $(this).attr(id).replace('-p', '-p' + counter++));
});

编辑:如果您只想要一个id -p 结尾的项目,您可以使用以下内容(请注意不同的选择器):

var counter = 0;
$('[id$="-p"]').each(function() {
    $(this).attr('id', $(this).attr(id).replace(/-p$/, '-p' + counter++));
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM