В интересах создания чего-то другого, ориентированного на данные, а не на код, вот другой подход.
Вы также можете использовать эту служебную функцию для извлечения данных любого типа из последовательных идентификаторов и для указания большего количества объектов с различными данными для извлечения, просто добавьте новую строку в таблицу.
function getDataFromDom(spec) {
var item;
for (var i = 0; i < spec.length; i++) {
item = spec[i];
for (var j = item.start, stop = item.last; j <= stop; j++) {
item.dest[j] = $(item.selBase + j)[item.method](item.arg);
}
}
}
var whatData = [
{selBase: "#img", method: "attr", arg: "src", first: 1, last: 4, dest: img},
{selBase: "#title", method: "text", arg: undefined, first: 1, last: 4, dest: title},
{selBase: "#description", method: "attr", arg: "value", first: 1, last: 4, dest: desc},
{selBase: "#url", method: "attr", arg: "value", first: 1, last: 4, dest: url}
];
getDataFromDOM(whatData);
Вы просто заполняете различные параметры для каждого типа объекта в таблице (база селекторов, имя метода jQuery для вызова, аргумент для этого метода, первый номер для получения, последний номер для получения и целевой массив для хранения данных) и функция просто перебирает таблицу, работающую с каждым типом объекта.