Показать сообщение отдельно
  #26 (permalink)  
Старый 12.06.2011, 05:54
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

1. Объяви переменную вне .each. Как-то так:
$(document).ready(function() {
  var all; 
  $('#content_value a[href*=info_village]').each(function() { 
    var ssil = $(this).attr('href');
    all = [ ssil.match(/village=\d+/), ssil.match(/\d+$/) ];
  }); 
  $('#content_value a[href*=info_village]').each(function() { 
    all.push( $(this).text().match(/\d{3}\|\d{3}/) ); 
  });
  alert( all.join(" ") ); 
});

2. Метод .after параметром принимает строку, DOM-элемент или jQuery-набор, а .match возвращает массив (или null, если ничего не нашел). Соответственно, нужно так:
if(coords)
  $('#content_value a[href*=info_village]').after(coords[0]);
Если coords === null, будет ошибка, так что проверка обязательна.

Кстати, {1,} - эквивалентно +. По-моему, \d+ по-приятнее, чем \d{1,}.
Ответить с цитированием