我有一个包含大量静态html文件的大型Web项目。有没有办法用node.js操作这些文件?我的意思是,如果我想更改50个文件的tabindex,我可以做一些选择,如
$('input.myClass').attr('tabindex', '-1');
并将其应用于所有?我可以这样操纵我的项目文件吗?根据某些标准修改,替换字符串?
我自动执行大型更改的唯一选择是bash(现在),但我认为花这么多时间为css选择器构建自定义脚本不是一个好主意。
答案 0 :(得分:1)
这是一个使用cheerio的简单脚本,演示了如何操作html文件。假设html看起来像这样:
<!DOCTYPE html>
<html>
<head>
<title>My Test Page</title>
</head>
<body>
<ul id="fruits">
<li class="apple">Apples</li>
<li class="orange">Orange</li>
<li class="pear">Pear</li>
</ul>
</body>
</html>
添加tabindex的脚本如下所示:
#!/usr/bin/env node
var fs = require('fs'),
cheerio = require('cheerio');
fs.readFile('index.html', { encoding:'utf-8' }, function(err, data) {
if (err) throw err;
var $ = cheerio.load( data );
var apple = $('.apple');
apple.attr('tabindex', '-1');
// now write the file out
console.log( $.html() );
});
修改后的html现在看起来像这样:
<!DOCTYPE html>
<html>
<head>
<title>My Test Page</title>
</head>
<body>
<ul id="fruits">
<li class="apple" tabindex="-1">Apples</li>
<li class="orange">Orange</li>
<li class="pear">Pear</li>
</ul>
</body>
</html>