javascript - 搜索并替换 "-p"

标签 javascript jquery

如何在巨大的 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/

相关文章:

javascript - 如何限制用户仅从 google API 响应中选择城市

javascript - 在 jQuery 插件中使用箭头函数

javascript - 输入模型在更改时从 Integer 更改为 String

jquery select2插件如何仅获取结果 'myString%'

ajax - jquery.load() 来 POST 表单的所有元素,而不必指定要 POST 的内容

javascript - Bootstrap 网格缩略图,单击时可展开预览

javascript - Laravel webmix JS 与 Vue 组件顺序编译问题

jQuery 数据表 : how to change pagination active color?

jquery 解析字符串

jquery 上下文菜单禁用菜单项