Что-то, что не упомянуто в принятом ответе: даже при использовании селектора идентификаторов, Sizzle jQuery возвращает объект / коллекцию.Поэтому, если вы получаете эту ошибку при использовании jQuery, используйте приложение [0]
для доступа к первому индексу элемента.Если вам интересно, индексы могут быть исследованы с помощью console.dir($('#canvasId));
Например, этот совершенно нормальный селектор не будет работать:
var src = $('#canvasId').toDataURL("image/png");
Но этот будет работать (обратите внимание на дополнительные скобки):
var src = ($('#canvasId')[0]).toDataURL("image/png");