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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章