Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   скрипт проверяет только один раз (https://javascript.ru/forum/misc/42688-skript-proveryaet-tolko-odin-raz.html)

frixer 05.11.2013 23:09

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

<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 мало знаком подскажите, если можно на примере. Заранее благодарен!

ksa 05.11.2013 23:35

Цитата:

Сообщение от frixer
как лучше сделать код

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

var o={
   '01': 'Jan',
   ...,
   '12': 'dec'
};
var mes = $("#date").text().split('.')[1];
alert(o[mes]);

BETEPAH 06.11.2013 01:41

<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>


Часовой пояс GMT +3, время: 12:51.