У меня есть проблема. Внутри таблицы, тексты, доставшие из переменных пойдут, как я делаю, чтобы читать 'x' число символов и добавлять место к мишени после?.
Эдж.:
01. Escritura natural de idiomas.
Эдж.: как он должен оставаться:
01. Escritura natural de idiomas.
Как я должен формулировать, чтобы добавлять это место, прочитав первые вышеупомянутые символы? Спасибо перед рукой!.
function generatePageLinks(text, isChapter, pageId) {
// text = variable con cadena de texto de título.
var $element = $(document.createElement('td')),
$link = $("<a></a>").text(text).attr('href', '#').attr('data-page-id', pageId);
$element.append($('<div class="text-wrapper">').html(isChapter ? text : $link));
//Mete dicho texto dentro de las etiquetas <a>
return $element;
}
И это - то, что он создает в html:
<a data-page-id="04. Contenido_solapas" href="#">04. Contenido_solapas</a>
Благодаря нижнему приятелю, это было конечное решение, чтобы мочь манипулировать местом:)
$element.append('<div class="text-wrapper">');
$element.append($("<pre></pre>").html(isChapter ? text : $link));
return $element;
Чтобы делать это более автоматизированным, он создает функцию, которую он получал бы:
function fillWithSpaces(text, breakpoint, spacesQty) {
if(breakpoint < 0) { throw new Error("Invalid break position"); }
let leftPart = text.substring(0, breakpoint);
let rightPart = text.substring(breakpoint);
[...Array(spacesQty)].map((i) => {
leftPart += " ";
});
return leftPart + rightPart;
}
let originalText = "01. Escritura natural de idiomas.";
let customText = fillWithSpaces(originalText, 3, 5);
document.querySelector('pre').innerText = customText;
<pre></pre>
Твой код может разделяться на части для лучшей читабельности. Просто создай элементы td
и a
и <div class="text-wrapper">
. Добавь признаки в a
и, если это глава, ты добавляешь только текст или соединение соответственно.
var element = document.createElement('td');
var link = document.createElement('a');
$(link)
.attr('data-page-id', id)
.attr('href', '#')
.append('<pre>')
.find('pre')
.append(text)
.find('a');
var wrapper = $(element)
.append('<div class="text-wrapper">')
.find('div');
if(isChapter){
$(wrapper).append(text);
} else {
$(wrapper).append(link);
}
return element;
Я это сделал ища первое место, которое мне кажется более простым, что считать характеры, посмотрим подает тебя:
var str = document.getElementById("parrafo").innerHTML;
var str2 = str.replace(" ", " ");
document.getElementById("parrafo").innerHTML = str2;
<p id="parrafo">01. Escritura natural de idiomas.</p>
var str="01. Escritura natural de idiomas.";
var str2 = str.slice(0, 3) + " " + str.slice(3);
Результат:
01. Escritura natural de idiomas.
str.slice возвращает отборные составные части матки, как новый объект матки, выбирая составные части с данных аргументов (0,3) для первого случая и второго slice, который начинается (3) до конца
С регулярным выражением он достаточно простой. Метод повторно нравится позволяет тебе заменять фрагмент цепи характеров.
Встречается первые 3 характера, добавь пространства и потом помести оставшуюся часть цепи входа.
var spaces = ' ';
// En ES6 puedes usar
// var spaces = ' '.repeat(3);
var source = 'Lorem ipsum dolor amet';
var source2 = '01. Escritura natural de idiomas.'
var result = source.replace(/^(.{3})(.*)$/, '$1' + spaces + '$2');
var result2 = source2.replace(/^(.{3})(.*)$/, '$1' + spaces + '$2');
alert(result);
alert(result2);
Ты можешь использовать javascript таким образом:
var str = "Hello world!";
var res = str.substr(1, 4) + " ";//Un espacio en blanco
Оказавшийся
ello
Надеялся, что он подает тебе
str.substr (0, 3) + " " + str.substr (3)
. Я не могу тестировать это сейчас, если он не является точным, сыграй с ними и #237; ndices.
– José M. Carnero
24.06.2016, 15:35
<pre>
вместо<p>
в producci и # 243; n? Потому что с<p>
он только берет место. – gugadev 24.06.2016, 18:10