如果GET https://api.github.com/user/repos?access_token=<your_token_goes_here>
应该返回一个可索引的元素列表,为什么我不能使用getElementsByName
引用具有该名称的唯一元素?
[0]
答案 0 :(得分:1)
正如其他人提到的mycanvas是变量名而不是元素的name属性。
你正在做的事情还没有成功,因为你没有设置元素本身的“name”属性,这就是document.getElementsByName所针对的目标(详见here。)< / p>
试一试:
mycanvas=document.createElement("canvas");
mycanvas.width = 600;
mycanvas.height = 400;
ctx = mycanvas.getContext("2d");
document.body.appendChild(mycanvas);
mycanvas.setAttribute("name", "bongo");
document.getElementsByName("bongo")[0].style.backgroundColor="#FF0000";
“name”属性现在在canvas元素本身上设置,例如:
<canvas width="600" height="400" name="bongo" style="background-color: rgb(255, 0, 0);"></canvas>
重要提示:即使这样可行,您可能还想使用其他方法,因为 name 只应用于以下元素:<a>, <applet>, <button>, <form>, <frame>, <iframe>, <img>, <input>, <map>, <meta>, <object>, <param>, <select>, and <textarea>
答案 1 :(得分:0)
document.getElementsByTagName("canvas")[0].style.backgroundColor="#FF0000"
如果你只有1个画布,应该有用。
为什么你认为使用“mycanvas”会引用你生成的画布?
document.getElementsByName
用于通过name
属性
答案 2 :(得分:0)
因为getElementsByName
按名称查找元素(例如,name="foo"
)。您的画布没有name
属性。 (也不应该; name
不是canvas
elements的有效属性。)
如果您想查看标记名称,请使用getElementsByTagName
(对于随DOM更新而更新的“实时”NodeList)或querySelectorAll
(返回未更新的快照列表。