Всем привет, у меня такая ситуация. Я имею текст:
<p>Loremasdadasdasd</p>
<p>Loremasdasdasd</p>
<p>loremadasdasdasd</p>
<p>asdasdasdasdasda</p>
Мне нужно, на каждый четный абзац вставлять символ {{id}}
Я это сделал так:
var ids = [];
var selRel = function(id) {
ids.push(id);
let newStr = jQuery('#ed_ru')
.val()
.split("<p>")
.filter(el => !el.match(/\{\{(\d{1,8})\}\}/))
.map((el,it) => {
return (it == 2) ? '{{'+id+'}}' + el : el
})
.join('<p>');
jQuery('#ed_ru').val(newStr);
let newStrMd = jQuery('#ed_md')
.val()
.split("<p>")
.filter(el => !el.match(/\{\{(\d{1,8})\}\}/))
.map((el,it) => {
return (it % 2 == 0) ? '{{'+ids[it]+'}}' + el : el
})
.join('<p>');
jQuery('#ed_md').val(newStrMd);
};
Но у меня есть проблемы, во-первых, он не вставляет на четные абзацы символ {{id}}
.
Во-вторых обрезается текст. Как поправить?
Сами абзацы берутся из input type hidden.
{{}}
не вставляются иногда в параграфы. UPDATE
У меня есть массив:
var ids = ['212341', '2313213', '323134', '213132'];
Мне нужно, чтобы на каждый четный абзац шло уникальное значение из этого массива, как это можно сделать?
Как-то так, если я правильно понял.
var add = function(id) {
$('p').each(function(i) { // Для каждого параграфа
if ((i + 1) % 2 == 0) // Если индекс кратный 2...
$(this).append('{{' + id + '}}'); // То добавляем текст
});
};
add('id');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
превратите ваш кусок html-строки в jquery объект и работайте с ним как обычно.
var ids = ['99999', '2313213', '323134', '213132'];
var data = $("#x").val();
var m = null;
var regex = /{{(\d{1,8})}}/g;
while( m = regex.exec(data) ){
var idx = ids.indexOf(m[1]);
if(idx >= 0){
ids.splice(idx, 1);
}
}
var $data = $(data).wrapAll("<div></div>").parent();
$data.find("p")
.filter(function(i,v){
return (i % 2 == 0) && !(regex.test($(v).text()));
})
.slice(0, ids.length)
.each(function(i,v){
$(v).prepend('{{' + ids[i] + '}}');
});
console.log($data.html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="x" type="hidden" value="<p>Loremasdadasdasd1</p>
<p>Loremasdasdasd2</p>
<p>{{99999}}loremadasdasdasd3</p>
<p>asdasdasdasdasda4</p>
<p>loremadasdasdasd5</p>
<p>asdasdasdasdasda6</p>
"/>
Виртуальный выделенный сервер (VDS) становится отличным выбором
В консоли видно, что src меняется, но отображаемый pdf остается прежним
Добрый деньПолучаю ошибку рендера в следующей ситуации
Стандартный способ это подгрузить мини блок и стили для него, в потом скрытьДля этого устанавливается таймер