2013-04-08 5 views
1

Что означает этот код?Является ли этот код селектором jQuery или чем-то другим?

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

На самом деле мне очень интересно об этом синтаксисе:

$("<canvas>") 

ли это, что означает создать холст элемент? Кажется, это не селектор в jQuery, не так ли? Если я хочу, чтобы выбрать холст элемент следует использовать

$("canvas") 
+1

http://api.jquery.com/jQuery/ –

ответ

2

Правильно, это значит создать canvas элемент. jQuery функции перегружается:

  • Если он будет принят селектор, он выбирает те элементы.
  • Если прошло строка HTML, она создает элемент.
  • Если прошло объект jQuery, он копирует этот объект jQuery.
  • Если прошло массив, он создает объект jQuery, представляющий эти объекты.
  • Если прошло элемент, он создает объект jQuery с этим элементом.
  • если передано функция, она регистрирует его для вызова на загрузку страницы.
+0

Я вижу, спасибо @icktoofay – Wayou

0

$("canvas") действительно означает выбор всех тэгов на холсте.

$("<canvas>") означает создание тега canvas и возврат ссылки на объект jQuery, который выбрал тот, новый созданный тег. Следует отметить, что это не добавляется в документ еще где-нибудь, так что вам действительно нужно сделать что-то вроде:

$('<canvas>').appendTo('body'); 
+0

Спасибо, @ Chris Moschini – Wayou

0

Да jQuery() method can be used to create DOM elements from raw HTML. Это также присваивает атрибутам width/height только что созданному элементу. Вы бы выбрали его с помощью $("canvas"). Обратите внимание, что этот элемент не привязан к DOM.

+0

Также благодаря вам, @ Explosion Pills – Wayou