canvas
function createSVG() {
? ?var svg = document.createElementNS(SVG_NS, 'svg');
? ?svg.setAttribute('width', '100%');
? ?svg.setAttribute('height', '100%');
? ?canvas.appendChild(svg);
? ?svg.addEventListener('click', function(e) {
? ? ? ?if (e.target.tagName.toLowerCase() in shapeInfo) {
? ? ? ? ? ?select(e.target);
? ? ? ?}
? ?});
? ?return svg;
}
?canvas.appendChild(svg); 這里的 canvas 并沒(méi)有任何定義,為什么可以直接使用?
2016-08-30
我們可以通過(guò)id直接訪問(wèn)對(duì)象,是因?yàn)樗械脑豂D都相當(dāng)于一個(gè)保存對(duì)象的全局變量。
但標(biāo)準(zhǔn)寫(xiě)法還是document.getElementById。
當(dāng)整個(gè)頁(yè)面上只有唯一一個(gè)id時(shí),你用id的效果差不多等同于document.getElementByid()。HTML元素?fù)碛械膶傩苑椒ǎū热鏰ppendChild()),id和document.getElementByid都可以正常使用。
但是當(dāng)頁(yè)面上有2個(gè)以上相同id的元素時(shí),直接用id和document.getElementByid得到的是不同的東西,前者是一個(gè)數(shù)組,是所有相同id的元素的集合;后者是一個(gè)單獨(dú)的html元素,是相同id的元素集合中的第一個(gè)元素。你可以自己試驗(yàn)下打印出來(lái)看看是啥。所以此時(shí),HTML元素?fù)碛械膶傩苑椒ǎū热鏰ppendChild()),id用不起,只有document.getElementByid才用得起。
總之,記得 ?:document.getElementByid ?才是標(biāo)準(zhǔn)的通過(guò)id獲得html元素的標(biāo)準(zhǔn)寫(xiě)法就行了。視頻老師只是懶得打字而已就省略了,我們自己開(kāi)發(fā)中不要這么做。
ps:補(bǔ)充:
如果一個(gè)元素符合下面兩條規(guī)則中的任一條,則window對(duì)象中必須要有與之對(duì)應(yīng)的一個(gè)屬性,屬性值就是這個(gè)對(duì)象。
如果一個(gè)元素?fù)碛蠭D屬性,那么ID屬性的屬性值就會(huì)成為window對(duì)象的屬性名.?
如果一個(gè)元素?fù)碛衝ame屬性,那么name屬性的屬性值就會(huì)成為window對(duì)象的屬性名.但這個(gè)元素的標(biāo)簽名必須是: a, applet, area, embed, form, frame, frameset, iframe, img, object,其中的一個(gè)。
2016-09-26
奧,原來(lái)是這樣子