我有这样的代码( div ,其ID为“whole_page”,其中一个后代是画布)
<div id="whole_page">
<div>
<canvas></canvas>
</div>
</div>
如果使用 jQuery ,我会这样做:
console.log ($('#whole_page').find("canvas").length)
输出 1 (实际上如果找到画布,我后来通过.get(0)将其提取为HTML DOM)。
但如果我这样做(我正在编写一种jQuery插件):
$.canvasjQ = $('#whole_page').find("canvas").length;
console.log($.canvasjQ);
输出 0 (显然我不能.get(0)因为$ .canvasJQ 未定义)。
我用了很多钱。作为Javascript的“全局变量”(这是一个不好的做法?)的替代,对于简单的值或对象都是如此,我没有像这样的问题。
此外我想知道是否$。 被视为全局变量?
编辑:如果尝试打印(我也试图反转第2行和第3行代码)
$.canvasjQ = $('#whole_page').find("canvas")
console.log($.canvasjQ); // Output: [prevObject: x.fn.x.init[1], ......
console.log($('#whole_page').find("canvas")); // Output: [canvas, prevObject: x.fn.x.init[1], context: ....
为什么输出不同(prevObject vs Canvas)?事实上,我期待画布,实际上如果我写作
console.log($('#whole_page').find("canvas").length;
结果 1 。 但如果我写(这应该是**等同**)
console.log($.canvasjQ.length);
结果是 0
提前感谢任何线索
答案 0 :(得分:1)
删除canvas标签中的双引号
<div id="whole_page">
<div>
<canvas></canvas>
</div>
</div>