Node.js筆記(十)Nodejs與DOM操作,node.jsnodejs
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
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。