1

这段代码是什么意思?

var item=$("<canvas>").attr("width", width).attr("height", height)[0];

其实我很好奇这种语法:

$("<canvas>")

这是否意味着创建一个画布元素?它似乎不是 jQuery 中的选择器,对吧?如果我想选择一个画布元素,我应该使用

$("canvas")
4

3 回答 3

2

正确,这意味着创建一个canvas元素。jQuery函数重载:

  • 如果传递了一个选择器,它会选择那些元素。
  • 如果传递一个 HTML 字符串,它会创建一个元素。
  • 如果传递了一个 jQuery 对象,它会复制那个 jQuery 对象。
  • 如果传递一个数组,它会创建一个代表这些对象的 jQuery 对象。
  • 如果传递了一个元素,它会使用该元素创建一个 jQuery 对象。
  • 如果传递了一个函数,它会注册以在页面加载时调用它。
于 2013-04-08T01:46:54.400 回答
0

$("canvas")确实意味着选择所有画布标签。

$("<canvas>")意味着创建一个画布标签并返回一个对已选择该新创建标签的 jQuery 对象的引用。值得注意的是,它还没有添加到文档中,因此您确实需要执行以下操作:

$('<canvas>').appendTo('body');
于 2013-04-08T01:48:23.087 回答
0

是的,该jQuery()方法可用于从原始 HTML 创建 DOM 元素。这也将宽度/高度属性分配给新创建的元素。您确实会选择它$("canvas")。请注意,此元素不会附加到 DOM。

于 2013-04-08T01:48:31.170 回答