Node.js笔记(十)Nodejs与DOM操作

Nodejs作为后端语言,直接进行DOM操作是违背分离原则的。
但如果是个人的小网站,稍微灵活一点也没有坏处不是。
这里介绍的是cheerio这个插件,是基于jquery实现并稍有精简,目的是为nodejs提供像jquery一样的dom操作
ps:本来jsdom也是一种选择,但可惜最新版本的jsdom不再支持nodejs

下面看一个例子:

//这个方法从filelist.txt里面读出文件名,将其添加到index.html中类为listselect的select标签下
function getFileList(){
    var content = fs.readFileSync('./index.html');
    $ = cheerio.load(content);

    $('select.listselect').empty();//避免重复,加载前先清空标签下所有子标签
    lineReader.eachLine('./filelist.txt',function(line,last){
    //lineReader是一个按行读取文件的nodejs插件,可自行安装
        var file = line.substr(line.lastIndexOf(' ')+1);
        $('select.listselect').append('<option class="listoption" value='+file+'>'+file+'</option>');
    if(last){
        fs.writeFile("./index.html", $.html(),function(err){
            if(err) throw err;
            console.log("Saved");
        });
        return false;

    }
});

关于为什么会有

$ = cheerio.load(content);

这样的写法确实很让人纠结,必须是$这个符号不然就会出错,我个人理解成为了看起来和jquery里的选择器保持一致而特意这样写的

更多操作可以看
https://npmjs.org/package/cheerio
官方文档或者下面的翻译文档
https://cnodejs.org/topic/5203a71844e76d216a727d2e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值