用node. js命令行,使div标签替换为p标签,同时将class设置为list
var divTags=document.getElementsByTagName('div');
for(i=0;i<divTags.length;)
{
var div=divTags[i],
p=document.createElement('p');
p.setAttribute("class", "list");
div.parentNode.replaceChild(p, div);
}
借助cheerio
解析DOM
。
import { readFileSync, writeFileSync } from 'fs'
import * as cheerio from 'cheerio'
import type { Element } from 'cheerio'
function replaceTag(html: string, targetTag = 'div', replaceTag = 'p') {
const $ = cheerio.load(html)
$(targetTag).each((i, item) => {
if ((item as Element).tagName) {
(item as Element).tagName = replaceTag
}
$(item).addClass('list')
})
return $.html()
}
function getHTML(file: string): string {
return readFileSync(file, { encoding: 'utf8' })
}
function writeHTML(file: string, html: string) {
writeFileSync(file, html)
}
const HTML = getHTML('./index.html')
const replaceHTML = replaceTag(HTML)
writeHTML('./replace.html', replaceHTML)