返回Jquery prevObject,而不是实际对象(画布)。为什么?
我有一个这样的代码(一个id为“整页”的div,其中一个子体是canvas) 输出是1(事实上,if找到了画布,稍后我将其提取为HTML DOM by.get(0)) 但如果我这样做了(我正在编写一种jQuery插件): 输出是0(很明显,我不能执行.get(0),因为$.canvasJQ是未定义的) 我用了很多美元。作为Javascript的“全局变量”(这是一种不好的做法吗?)的替代品,无论是对于简单的值还是对象,我都没有遇到这样的问题 此外,我想知道,如果美元被视为全局变量 编辑:如果尝试打印(我还尝试反转代码的第2行和第3行) 为什么输出不同(prevObject与Canvas)?事实上,如果我写作,我期待画布返回Jquery prevObject,而不是实际对象(画布)。为什么?,jquery,Jquery,我有一个这样的代码(一个id为“整页”的div,其中一个子体是canvas) 输出是1(事实上,if找到了画布,稍后我将其提取为HTML DOM by.get(0)) 但如果我这样做了(我正在编写一种jQuery插件): 输出是0(很明显,我不能执行.get(0),因为$.canvasJQ是未定义的) 我用了很多美元。作为Javascript的“全局变量”(这是一种不好的做法吗?)的替代品,无论是对于简单的值还是对象,我都没有遇到这样的问题 此外,我想知道,如果美元被视为全局变量 编辑:如果尝试
console.log($('#whole_page').find("canvas").length;
结果是1。
但是如果我写(应该是**等价**)
结果为0
提前感谢您提供任何线索删除画布标记中的双引号
对我有效:您如何以及何时调用您的$。canvasjQ
代码?你确定DOM在那一点上准备好了吗?“输出是0(显然我不能做.get(0),因为$.canvasJQ是未定义的)。”如果输出是0
,它怎么能未定义呢?O_O“此外,我想知道$是否被视为一个全局变量?”如果窗口。$==$
是true
,那么是的,它是一个全局变量。@Rocket:是的,DOM准备好了。我调用$(文档)中的代码。准备好了@Felix:请查看我更新的问题您能告诉我们您是如何使用此代码的吗?它对我有用:你能用你的代码举例说明这个问题吗?我看过你的代码,但不知怎么的,对我来说不起作用(双引号只是一个书写错误)。请查看我的更新问题这是它为我返回0的唯一方式。。。一切正常。。。它是否仍然返回0,并带有$.canvasjQ=$(“canvas”,“整页”).length代码>?
console.log ($('#whole_page').find("canvas").length)
$.canvasjQ = $('#whole_page').find("canvas").length;
console.log($.canvasjQ);
$.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: ....
console.log($('#whole_page').find("canvas").length;
console.log($.canvasjQ.length);
<div id="whole_page">
<div>
<canvas></canvas>
</div>
</div>