Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Присвоение множиству элементов уникальных атрибутов из переменной (https://javascript.ru/forum/misc/62238-prisvoenie-mnozhistvu-ehlementov-unikalnykh-atributov-iz-peremennojj.html)

Source888 31.03.2016 21:19

Присвоение множиству элементов уникальных атрибутов из переменной
 
Здравствуйте. Есть такой ШТМЛ
<select >
<option value="120" selected="selected">опция 1 {2}</option>
<option value="677">опция 2 {3m}</option>
<option value="678">опция 3{4m}</option>
</select >
необходимо каждой опции селекта присвоить атрибут dada значением которой должны быть цифры содержащиеся в тексте самой опции (которые заключены в фигурные скобки).
Пытался сделать это таким кодом $("option").each(function(){
var name = $("option").text();
var text = name.substring(name.indexOf('{') + 1, name.indexOf('}'));
$("option").attr('data', text)})
Но в результате атрибут у всех опций имеет значение полученное из первой.

Decode 31.03.2016 22:26

$("option").each(function(){
  var name = $(this).text();
  var text = name.match(/\{(\d+)/)[1];
  $(this).attr('data', text);
});

Bond 31.03.2016 22:30

Потому что Вы вызвали цикл но не пользуетесь им. Вместо $("option") внутри цикла надо использовать $(this) который возвращает текущий элемент
$("option").each(function(){
		var name = $(this).text(),
			text = name.substring(name.indexOf('{') + 1, name.indexOf('}'));
		$(this).attr('data', text);
	});

Source888 31.03.2016 22:43

Спасибо Вам огромное. Только начинаю разбираться в JS.


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