Approximately 10 times faster.
const iterations = 10000;
const myDiv = document.createElement('div');
console.time('jQuery');
for (let i = 1; i < iterations; i++) {
$(myDiv).attr('id', 'myDiv');
}
console.timeEnd('jQuery');
const myDiv2 = $(myDiv);
console.time('jQuery with object');
for (let i = 1; i < iterations; i++) {
myDiv2.attr('id', 'myDiv');
}
console.timeEnd('jQuery with object');
const myDiv3 = document.createElement('div');
console.time('Vanila Javascript');
for (let i = 1; i < iterations; i++) {
myDiv3.id = 'myDiv';
}
console.timeEnd('Vanila Javascript');
jQuery: 41.998ms
jQuery with object: 32.513ms
Vanila Javascript: 4.670ms
Edit:
If you have jQuery in project you can use it without that speed difference is not significant. This micro optimization is not wort it. If you are not making Javascript FPS game :)
Edit2: @Bergi adding createElement in the timing function will not change the results significantly as you can see below.
const iterations = 10000;
console.time('jQuery');
const myDiv = document.createElement('div');
for (let i = 1; i < iterations; i++) {
$(myDiv).attr('id', 'myDiv');
}
console.timeEnd('jQuery');
console.time('jQuery with object');
const myDiv2 = $(document.createElement('div'));
for (let i = 1; i < iterations; i++) {
myDiv2.attr('id', 'myDiv');
}
console.timeEnd('jQuery with object');
console.time('Vanila Javascript');
const myDiv3 = document.createElement('div');
for (let i = 1; i < iterations; i++) {
myDiv3.id = 'myDiv';
}
console.timeEnd('Vanila Javascript');
jQuery: 35.493ms
jQuery with object: 21.310ms
Vanila Javascript: 4.515ms