Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.11.2013, 23:09
Новичок на форуме
Отправить личное сообщение для frixer Посмотреть профиль Найти все сообщения от frixer
 
Регистрация: 28.03.2010
Сообщений: 5

скрипт проверяет только один раз
Здравствуйте имеется скрипт

<span id="date">13.03.13</span><br>
<span id="date">14.01.13</span><br>
<span id="date">21.08.13</span><br>


<script type="text/javascript">
var str = $("#date").text();
var mes = str.split('.');
var a = Number(str[1])


switch(a) {
  case 01: {
    $("#date").text(mes[0]+' '+"Jan");
    break;
  }
  case 02: {
    $("#date").text(mes[0]+' '+"Fev");
    break;
  }
  case 03: {
    $("#date").text(mes[0]+' '+"Mart");
    break;
  }
  case 04: {
    $("#date").text(mes[0]+' '+"Apr");
    break;
  }
  case 05: {
    $("#date").text(mes[0]+' '+"May");
    break;
  }
  case 06: {
    $("#date").text(mes[0]+' '+"Jun");
    break;
  }
  case 07: {
    $("#date").text(mes[0]+' '+"Jul");
    break;
  }
  case 08: {
    $("#date").text(mes[0]+' '+"Avg");
    break;
  }
  case 09: {
    $("#date").text(mes[0]+' '+"Sep");
    break;
  }
  case 10: {
    $("#date").text(mes[0]+' '+"Okt");
    break;
  }
  case 11: {
    $("#date").text(mes[0]+' '+"Nov");
    break;
  }
  case 12: {
    $("#date").text(mes[0]+' '+"dec");
    break;
  }
}


</script>


В span есть даты именно так как есть, разделяем по точке.
потом проверяем какой месяц и заменяем старое значение span на новое, проблема в том что скрипт проверяет и меняет только у первого блока второй третий не видет и не обрабатывает. спанов может быть 3 или 4 или 5.
как лучше сделать код, с JS мало знаком подскажите, если можно на примере. Заранее благодарен!
Ответить с цитированием
  #2 (permalink)  
Старый 05.11.2013, 23:35
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от frixer
как лучше сделать код
1. ИД на странице должен быть уникальным
2. Избавься от этой огромной конструкции

var o={
   '01': 'Jan',
   ...,
   '12': 'dec'
};
var mes = $("#date").text().split('.')[1];
alert(o[mes]);
Ответить с цитированием
  #3 (permalink)  
Старый 06.11.2013, 01:41
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

<span class="date">13.03.13</span><br>
<span class="date">14.01.13</span><br>
<span class="date">21.08.13</span><br>
<script>
var mon = ['Jan','Fev','Mart','Apr','May','Jun','Jul','Avg','Sep','Okt','Nov','dec'];
var arr = document.getElementsByClassName('date');
for (var i = 0; i < arr.length; i++) {
	arr[i].innerHTML = arr[i].innerHTML.replace(/(\d\d)\.(\d\d)\.(\d\d)/, function(match, f1, f2, f3) {
		return f1 + ' ' + mon[parseFloat(f2) -1] + ' 20' + f3;
	});
}
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой скрипт? Ссылка показывается только один раз maxcan Общие вопросы Javascript 1 11.04.2013 09:40
Отображение дива только один раз Marker Events/DOM/Window 1 16.03.2013 11:54
Только раз увеличивать на +1 realstranger Events/DOM/Window 4 27.02.2013 09:58
Скрипт меню не работает только в Firefox somatic Firefox/Mozilla 2 28.07.2009 03:23
Спойлер работает только на один объект на странице. Shanks Общие вопросы Javascript 4 10.05.2009 14:53