Не работает цикл for с replace()

269
01 июня 2017, 08:38

Доброго времени суток.
У меня есть код с подобным содержанием:

<div class="asd">#define spl_b_bab_m ЗАМЕНИТЬ</div>
<div class="asd">#define spl_b_bar_m ЗАМЕНИТЬ</div>
<div class="asd">#define spl_b_mab_m ЗАМЕНИТЬ</div>

И есть JQ:

for(i = 1000; i < 10; i++) {
  $('.asd').replace('ЗАМЕНИТЬ', i);
};

По логике в блоке .asd должно находиться слово "ЗАМЕНИТЬ" и меняться на число от 1000, по +1 в каждой следующей строке.

Но этот код не работает.
У меня дико подгорает.

Help me :с

Answer 1

replace — функция javascript'а, и она применяется на строку.

Выборка jquery через селектор всегда возвращает объект jquery, а не строку. Соответственно, чтобы применять replace к строке, нужно после выбора элемента, брать его текст внутри через text().

Также replace не поменяет текст сразу в исходном поле, он вернет лишь измененный. Поэтому, чтобы обратно записать в элемент измененный текст, нужно туда опять через text() вставить то, что ты заменяешь через replace

Ну и достать i-ый элемент можно либо с помощью nth-of-type либо eq - на выбор.

var start = 5; 
var end = 10; 
 
//var length = $('.asd').length; 
 
for(i = start; i < end + 1; i++) {  
  var el = $( ".asd:nth-of-type(" + i +")" ); // var el = $('.asd').eq(i);   
  el.text(el.text().replace('ЗАМЕНИТЬ', i)); 
};
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div class="asd">#define spl_b_bab_m ЗАМЕНИТЬ</div> 
<div class="asd">#define spl_b_bar_m ЗАМЕНИТЬ</div> 
<div class="asd">#define spl_b_mab_m ЗАМЕНИТЬ</div> 
<div class="asd">#define spl_b_mab_m ЗАМЕНИТЬ</div> 
<div class="asd">#define spl_b_mab_m ЗАМЕНИТЬ</div> 
<div class="asd">#define spl_b_mab_m ЗАМЕНИТЬ</div> 
<div class="asd">#define spl_b_mab_m ЗАМЕНИТЬ</div> 
<div class="asd">#define spl_b_mab_m ЗАМЕНИТЬ</div> 
<div class="asd">#define spl_b_mab_m ЗАМЕНИТЬ</div> 
<div class="asd">#define spl_b_mab_m ЗАМЕНИТЬ</div> 
<div class="asd">#define spl_b_mab_m ЗАМЕНИТЬ</div> 
<div class="asd">#define spl_b_mab_m ЗАМЕНИТЬ</div>

READ ALSO
CSS обрезаный фон

CSS обрезаный фон

Здравствуйте, думал сам разобраться, но что то никак не получаетсяПроблема такова: имеется сайт с 3 фонами (в шапке одна картинка, вторая через...

205
4 колонки на skeleton

4 колонки на skeleton

Добрый день

231
MySql: Где используются 4 и 5 нормальные формы?

MySql: Где используются 4 и 5 нормальные формы?

Дорогие знатоки, изучая MySql нормальные формы дошел до третьегоВсе понял отлично

224
Таблица очищается после рестарта MySQL

Таблица очищается после рестарта MySQL

После рестарта MySQL все данные в таблице пропадают и таблица становиться чиста, как будто они хранятся в кеше

248