node - cheerio模塊

cheerio 是nodejs特別為服務(wù)端定制的,能夠快速靈活的對(duì)JQuery核心進(jìn)行實(shí)現(xiàn),工作于DOM模型上,并且解析、操作、呈送都很高效

//示例
var html = '<ul id="fruits">' +
    '   <li class="apple">Apple</li>' +
    '   <li class="orange">Orange</li>' +
    '   <li class="pear">Pear</li>' +
    '</ul>';
  • .load引入我們要解析的html
var cheerio = require('cheerio');
$ = cheerio.load(html);
  • 選擇器(selectors)

$(selector,[context],[root])(context、root通常會(huì)省略)

$('.apple') 
//選擇器定位到class=“apple”

$('ul .pear') 
//選擇器定位到ul中class = “pear”

$('li[class = orange]')
//選擇器定位到liclass=“orange”
  • 屬性操作(attr)
    .attr(name[,value])獲取和設(shè)置屬性
    第二個(gè)參數(shù)是可選的。當(dāng)?shù)诙€(gè)參數(shù)不存在時(shí)表示獲取屬性的值,當(dāng)有帶有第二個(gè)參數(shù)時(shí),表示設(shè)置屬性的值。如果設(shè)置一個(gè)屬性的值設(shè)置為null ,則刪除該屬性
$('ul').attr('id');
//獲取ul的id屬性名

$('apple').attr('id','favorite').html;
//class為apple的添加了個(gè)id為favorite

.removeAttr(name)移除屬性

  • class操作
    .hasClass(className)判斷元素class中是否包含className
    .addClass(className)給元素添加className的樣式名
    removeClass(className)將元素上className的樣式名移除,當(dāng)className為空時(shí)則移除所有樣式名
  • DOM操作
    .append(content)作為最后一個(gè)子元素插入
    prepend(content)作為第一個(gè)子元素插入
    .after(content)插入某一元素后面
    .before(content)插入某一元素前面
    .empty()清空節(jié)點(diǎn),移除所有字節(jié)點(diǎn)
    .html()獲取節(jié)點(diǎn)的html內(nèi)容,傳入?yún)?shù)時(shí)設(shè)置該元素的html結(jié)構(gòu)
    .text()獲取節(jié)點(diǎn)的所有文本內(nèi)容

查找元素
.find()查找符合選擇條件的元素

$('#fruits').find('li').length;  //=> 3

.parent()獲取元素的父元素
.next()獲取元素的下一個(gè)兄弟元素
.perv()獲取元素的上一個(gè)兄弟元素
.children([selector])獲取元素的孩子節(jié)點(diǎn)
.siblings()獲取元素的所有同級(jí)元素(包括本身)
?
.filter(seletor/function(index))在cheerio對(duì)象集合中進(jìn)行條件篩選
.fist()獲取cheerio集合中第一個(gè)cheerio對(duì)象
.last()cheerio最后一個(gè)對(duì)象
.eq(i)根據(jù)索引值i獲取cheerio的對(duì)象(i為負(fù)值時(shí)表示從尾部開始索引)
.clone()對(duì)cheerio對(duì)象進(jìn)行復(fù)制

.eacn(function(index,element){……})遍歷每個(gè)元素
.map(function(index,element){……})對(duì)每一個(gè)元素進(jìn)行處理并返回一個(gè)值

$.root 對(duì)頂級(jí)DOM進(jìn)行操作
$.contains(container,contained)判斷container是否有contained

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,113評(píng)論 1 92
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評(píng)論 19 139
  • 原文鏈接 http://blog.poetries.top/2016/10/20/review-jQuery 關(guān)注...
    前端進(jìn)階之旅閱讀 16,939評(píng)論 18 503
  • 元認(rèn)知能力是思考自己的思考過(guò)程的一種能力。我們可以通過(guò)提高自己的元認(rèn)知能力,讓自己的思考效率更高,也會(huì)促使自己在思...
    I_Marco閱讀 194評(píng)論 0 0
  • 當(dāng)你看清了一個(gè)人而不揭穿,你就懂得了原諒的意義;討厭一個(gè)人而不翻臉,你就懂得了至極的尊重?;钪傆心憧床粦T的人,...
    婷子_4ab7閱讀 187評(píng)論 0 0

友情鏈接更多精彩內(nèi)容