剛開(kāi)始用ECharts,看了百度的例子,是使用原生的方法獲取div,然后再初始化Chart組件:
var myChart = echarts.init(document.getElementById('main'));
嘗試用JQuery獲取DIV設(shè)置后条获,發(fā)現(xiàn)圖直接消失了素标,后來(lái)用Chrome瀏覽器debug代碼,發(fā)現(xiàn)document.getElementById
跟 $('#id')
返回的結(jié)果不一樣实抡。
然后用下面方式試了下六水,就可以了:
var myChart = echarts.init($('#main')[0]);
// 或者
var myChart = echarts.init($('#main').get(0));
平時(shí)一直使用這種方式來(lái)獲取DOM元素,想當(dāng)然的認(rèn)為JQuery返回的就是DOM元素了博脑,通過(guò)這次調(diào)試叉趣,發(fā)現(xiàn)其實(shí)并不是....
通過(guò)調(diào)試發(fā)現(xiàn)JQuery一直是返回?cái)?shù)組的,即使未獲取到DOM梢什,也返回一個(gè)空數(shù)組嗡午。
JQuery 這么實(shí)現(xiàn)有這么幾個(gè)好處僻他,個(gè)人理解:
- 返回一個(gè)JQuery對(duì)象婿斥,而不是DOM對(duì)象坟桅,主要是為了能夠提供更多的方法,如val()讲衫、text()缕棵、html()等,提供豐富的操作方法
- 獲取的DOM元素是一個(gè)數(shù)組涉兽,這應(yīng)該是因?yàn)楂@取的DOM元素個(gè)數(shù)不定招驴,這樣使用者可以不用考慮里面元素的個(gè)數(shù),直接操作即可枷畏,內(nèi)部實(shí)現(xiàn)也統(tǒng)一了别厘。
- 可以使用鏈?zhǔn)讲僮?/li>
- 一般使用JQuery之后,很少情況再拿到DOM元素去做一些操作矿辽,而且操作起來(lái)并不比JQuery方便丹允。真有需求,加個(gè)[0]即可袋倔。