Это должно сработать.Вместо того, чтобы добавить цвет к вашему .newText
, добавьте к новой добавленной строке.
var fontColors;
var randomColor;
$(function(){
fontColors = ['red','orange','yellow','green','blue','indigo','violet','pink']
randomColor = fontColors[Math.floor(Math.random() * fontColors.length)]
$('.newText').css({'color':randomColor});
$('.newText').append('<p>original line of text</p>');
setInterval(function(){
var newLine = $('<p>this text is added every 5 seconds</p>');
$('.newText').append(newLine)
randomColor = fontColors[Math.floor(Math.random() * fontColors.length)]
$(newLine).css({
'color':randomColor
})
}, 5000)
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span class="newText"></span>
ОБНОВЛЕНИЕ
Если кто-то ищет чистое решение JS
, следующий код должен выполнитьтрюк.
let fontColors;
let randomColor;
function addNewText() {
// Set all possible font colors.
fontColors = ['red','orange','yellow','green','blue','indigo','violet','pink'];
// Generate a random number, which will represent a font color.
randomColor = fontColors[Math.floor(Math.random() * fontColors.length)]
// Set a new line.
const container = document.querySelector('.newText');
const newLine = document.createElement('p');
newLine.textContent = 'original line of text';
container.append(newLine);
// Now set an interval, in which we will be adding new lines every
// certain amount of time.
setInterval( () => {
const newLine = document.createElement('p');
newLine.textContent = 'this text is added every 5 seconds';
randomColor = fontColors[Math.floor(Math.random() * fontColors.length)];
newLine.style.color = randomColor;
container.append(newLine);
}, 5000);
};
addNewText();
<span class="newText"></span>