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

发布了57 篇原创文章 · 获赞 5 · 访问量 14万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章