我有这个javascript,我需要每个元素" title"用不同的随机颜色着色。我完成了第一个着色。有可能的?感谢
var randomColor = Math.floor(Math.random()*16777215).toString(16);
document.getElementById('title').style.color = randomColor;
<div id="title"><a>TEXT1</a></div>...<div id="title"><a>TEXT2</a></div>...
答案 0 :(得分:0)
正如我已经评论过的,您不能使用重复的ID,而是更喜欢使用class
并相应地修改您的代码。
var getElm = document.getElementsByClassName('title');
for(var i = 0, l = getElm.length; i < l; i++) {
var randomColor = Math.floor(Math.random() * 16777215).toString(16);
getElm[i].style.color = '#' + randomColor;
}
&#13;
<div class="title"><a>TEXT1</a></div>
<div class="title"><a>TEXT2</a></div>
&#13;
上述代码如何工作的一些解释:
我使用的是getElementsByClassName
,它会返回一系列您要定位的元素,在这种情况下,它是class
名称为title
的元素。然后我循环它们,生成一个新的随机十六进制,并将它分配给循环元素。
请确保您不要忘记将您的十六进制代码与#
答案 1 :(得分:0)
只需调用 changeColor(); 函数。
$(function(){
changeColor();
});
function changeColor() {
var paragraphs = document.getElementsByTagName("p");
for(var i = 0; i < paragraphs.length; i++)
{
var innerText = paragraphs[i].innerText;
var innerTextSplit = innerText.split("");
paragraphs[i].innerText = ""
for(var j = 0; j < innerTextSplit.length; j++) {
var randomColor =getRandomColor();
innerTextSplit[j] = '<span style="color: ' + randomColor + '">' + innerTextSplit[j] + '</span>';
paragraphs[i].innerHTML += innerTextSplit[j];
}
}
}
function getRandomColor() {
var letters = '0123456789ABCDEF';
var color = '#';
for (var i = 0; i < 6; i++ ) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>abcdefthuild</p>
<p>abcdefthuild</p>
<p>abcdefthuild</p>
<p>abcdefthuild</p>
<p>abcdefthuild</p>
答案 2 :(得分:0)
像这样使用。没有classname
document.querySelectorAll()
。它将选择元素。Array#forEach
#
添加颜色
document.querySelectorAll("div[id='title']").forEach(function(a){
var randomColor = Math.floor(Math.random()*16777215).toString(16);
a.style.color ='#'+randomColor;
})
<div id="title"><a>TEXT1</a></div>
<div id="title"><a>TEXT2</a></div>
<div id="title"><a>TEXT2</a></div>
<div id="title"><a>TEXT2</a></div>
<div id="title"><a>TEXT2</a></div>
<div id="title"><a>TEXT2</a></div>...
答案 3 :(得分:-1)
<强> HTML 强>
var elements = document.getElementsByClassName('title');
var usedColors = {};
var getRandomColor = function() {
var randomColor = Math.floor(Math.random()*16777215).toString(16);
while(usedColors[randomColor] === 1) {
randomColor = Math.floor(Math.random()*16777215).toString(16);
}
usedColors[randomColor] = 1;
return randomColor;
};
for (var i = 0; i < elements.length; i++ ) {
var randomColor = getRandomColor();
elements[i].style.color = "#"+randomColor;
}
JS
<a ui-sref="app.register" translate="LOGIN.CREATE_ACCOUNT">Create an account</a>
<强>的jsfiddle 强> https://jsfiddle.net/1cuwdLye/