如何在巨大的html的id中精確搜索「-p」並在其後追加一個計數器即-p + counter。請幫忙。搜索並替換「-p」
回答
如果你所要求的是在所有的ID,其中XX是一個遞增計數器,-pXX更換-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 && id.indexOf("-p") != -1) {
elems[i].id = id.replace("-p", "-p" + 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++);
}
}
OK,你要(根據您的意見),如果你想只-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");
});
你不會在沒有'id'屬性的元素上出錯嗎? – nrabinowitz 2011-12-18 04:49:38
@nrabinowitz - 好點 - 固定。 – jfriend00 2011-12-18 04:51:52
它會替換具有「-priority」的id。因爲也有-p? – 2011-12-18 05:00:18
使用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++));
});
中的html的id,它會替換具有「-priority」的id。因爲也有-p? – 2011-12-18 04:59:34
是的。你只希望它在'-p'中替換ids * ending *嗎? – nrabinowitz 2011-12-18 05:07:16
我有像「bv-eng-priority-images」,「bv-eng-p-img」和「bv-eng-p」這樣的id,我希望替換不會影響第一個id,但p應該在第2個和第三個ID即我不希望計數器來作爲-pXXriority在第一個ID ..我認爲現在我正在讓自己清除 – 2011-12-18 05:35:01
- 1. 搜索並替換
- 2. 搜索並替換
- 3. Dreamweaver Regedit搜索並替換
- 4. 搜索並替換Linux
- 5. 搜索並替換$ .each()
- 6. Sublime Text - 搜索並替換
- 7. 實時搜索並替換
- 8. 搜索並替換文本
- 9. 搜索並替換爲sed
- 10. /in vi搜索並替換?
- 11. 搜索並替換腳本
- 12. Notepad ++搜索並替換
- 13. 使用sed搜索並替換
- 14. 搜索並替換多個匹配項
- 15. 在Perl中使用〜搜索並替換
- 16. 搜索並用指針替換
- 17. MSBuild搜索並替換爲xml文件
- 18. sed:搜索並替換不同的列
- 19. 在xib文件中搜索並替換
- 20. 在OpenOffice中搜索並替換Tab鍵
- 21. Vim - 搜索並替換結果
- 22. 搜索並替換爲字符串
- 23. 搜索並替換unicode字符
- 24. 在Netbeans中搜索並替換宏
- 25. 搜索並替換所有字段(CSV)
- 26. perl搜索並替換隨機文本
- 27. shell腳本:搜索並替換多行
- 28. Vim搜索並替換可變行數
- 29. Vim - 逐步搜索並替換結果
- 30. 搜索並替換所有元素
提供例如HTML(的一部分)和預期結果。 – Tadeck 2011-12-18 05:11:57
我看你是新來的語言(也許一般編碼),我的建議是:1)重新輸入代碼,從不復制/粘貼2)如果你不明白代碼不使用它,3)請花更多的時間/精力來寫你的問題。哦,並歡迎 – ajax333221 2011-12-18 06:14:22