$('#txtInput').keyup(function(){
var txtInput = $(this).val();
localStorage.setItem('inputData', txtInput);
var returnData = localStorage.getItem('inputData');
$('#txtInput').val(returnData);
var hasTest = returnData.includes("<h1>");
if(hasTest == true){
}
});
Я создаю текстовый редактор с помощью js. Здесь я использую localStorage для хранения и извлечения данных. Мне нужно добавить функцию выделения синтаксиса.
Например: если в тексте найдено «h1», покрасьте «h1» в красный цвет. Я использовал «.includes(), и он находит слово, но я понятия не имею, как изменить цвет найденного текста. Я очень ценю ваша помощь
2 ответа
Это должно сделать это за вас:
if (hasTest == true) {
returnData = returnData.replace('<h1>', '<h1 style="color:red">')
$('#txtInput').val(returnData);
}
Вы должны использовать методы jquery addClass()
и removeClass()
в своей программе, пока hasTest
является истинным или ложным. Я не могу поместить код во фрагмент кода, потому что StackOverflow не разрешает localStorage
.
Вот код:
CSS
.red {
color:red;
}
.black
{
color:black;
}
HTML
<html>
<head>
<title> </title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<input type="text" id="txtInput"/>
</body>
</html>
jQuery
$('#txtInput').keyup(function(){
var txtInput = $(this).val();
localStorage.setItem('inputData', txtInput);
var returnData = localStorage.getItem('inputData');
$('#txtInput').val(returnData);
var hasTest = returnData.includes("<h1>");
if(hasTest == true){
$("#txtInput").removeClass("black");
$("#txtInput").addClass("red");
}
else
{
$("#txtInput").removeClass("red");
$("#txtInput").addClass("black");
}
});
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.
StackOverflow
принять меры в отношении тех, кто слепо проголосовал против ответа из-за зависти или забавы. Это происходит ранее на мой ответ. Мой ответ правильный, но кто-то прямо проголосовал без комментариев.