随机边框颜色 我在TunBLR站点的主题中,每个图片都包含在一个.box类中。是否有一段javascript或jQuery可以用于将CSS中.photobox的边框颜色属性更改为随机颜色(最好从预定义颜色列表中选择)?我在这里找到了一两个脚本,但它们似乎不起作用。

随机边框颜色 我在TunBLR站点的主题中,每个图片都包含在一个.box类中。是否有一段javascript或jQuery可以用于将CSS中.photobox的边框颜色属性更改为随机颜色(最好从预定义颜色列表中选择)?我在这里找到了一两个脚本,但它们似乎不起作用。,javascript,html,css,tumblr,Javascript,Html,Css,Tumblr,我不确定,这可能是通过下载zip文件并查看文件的源代码实现的。信息技术表的s和颜色是随机的,但我想我们可以给出固定的颜色代码,我不确定,这可能是通过下载zip和查看文件的源代码实现的。信息技术表和颜色是随机的,但我认为我们可以提供固定的颜色代码,Javascript不能更改CSS规则集。您必须声明一个新的CSS规则集,并将其分配给DIV或每个图像。像 <script type="text/javascript"> function changeClass() {

我不确定,这可能是通过下载zip文件并查看文件的源代码实现的。信息技术表的s和颜色是随机的,但我想我们可以给出固定的颜色代码,我不确定,这可能是通过下载zip和查看文件的源代码实现的。信息技术表和颜色是随机的,但我认为我们可以提供固定的颜色代码,Javascript不能更改CSS规则集。您必须声明一个新的CSS规则集,并将其分配给DIV或每个图像。像

<script type="text/javascript"> function changeClass() { document.getElementById("MyElement").className += " MyClass"; } </script> ... <button onclick="changeClass()">My Button</button>
Javascript无法更改CSS规则集。您必须声明一个新的CSS规则集,并将其分配给DIV或每个图像。像

<script type="text/javascript"> function changeClass() { document.getElementById("MyElement").className += " MyClass"; } </script> ... <button onclick="changeClass()">My Button</button> 自动更改间隔 自动更改间隔 好了:

好了:


根据您的评论,您希望看到以下内容:

function getElementsByClassName ( classname, node ) {
    if ( !node ) {
        node = document.getElementsByTagName ( "body" )[0];
    }

    var a = [];
    var re = new RegExp ( '\\b' + classname + '\\b' );
    var els = node.getElementsByTagName ( "*" );
    for ( var i = 0, j = els.length; i < j; i++ ) {
        if ( re.test ( els[i].className ) ) {
            a.push ( els[i] );
        }
    }

    return a;
}

var photoboxes = getElementsByClassName ( 'photobox' );
var colors = Array ( 'red', 'blue', 'green', 'pink' );
for ( var i = 0; i < photoboxes.length; i++ ) {
    var images = photoboxes[i].getElementsByTagName ( 'img' );

    for ( var j = 0; j < images.length; j++ ) {
        images[j].style.borderColor = colors[Math.floor ( Math.random () * colors.length )];
    }
}

getElementByClassName是从中复制的。

根据您的评论,您希望得到如下内容:

function getElementsByClassName ( classname, node ) {
    if ( !node ) {
        node = document.getElementsByTagName ( "body" )[0];
    }

    var a = [];
    var re = new RegExp ( '\\b' + classname + '\\b' );
    var els = node.getElementsByTagName ( "*" );
    for ( var i = 0, j = els.length; i < j; i++ ) {
        if ( re.test ( els[i].className ) ) {
            a.push ( els[i] );
        }
    }

    return a;
}

var photoboxes = getElementsByClassName ( 'photobox' );
var colors = Array ( 'red', 'blue', 'green', 'pink' );
for ( var i = 0; i < photoboxes.length; i++ ) {
    var images = photoboxes[i].getElementsByTagName ( 'img' );

    for ( var j = 0; j < images.length; j++ ) {
        images[j].style.borderColor = colors[Math.floor ( Math.random () * colors.length )];
    }
}


getElementByClassName是从中复制的。

不,它不能。它所做的是改变或覆盖一个元素的样式,但应用于另一个元素的规则集本身保持不变。alemjerus是对的——它不能接受css说明符并在其中调整css。但是,它可以接受说明符应用到的每个项目,并更改应用的CSST。这就是它!滚动页面中的所有元素,以查找类应用于哪些元素,并在该位置修改它们的属性。@alemjerus Jan提供的链接更新了样式表而不是元素,并有效地证明了您的陈述是错误的,事实确实如此。不,它不能。它所做的是改变或覆盖一个元素的样式,但应用于另一个元素的规则集本身保持不变。alemjerus是对的——它不能接受css说明符并在其中调整css。但是,它可以接受说明符应用到的每个项目,并更改应用的CSST。这就是它!滚动页面中的所有元素,找出类应用于哪些元素,并在该位置修改它们的属性。@alemjerus Jan提供的链接更新了样式表而不是元素,有效地证明了您的说法是错误的。我认为Matt只希望每个框以随机颜色开始,而不是在一张纸上循环颜色timer@Jonathan,OP提到他想更改图像的边框颜色。也许一个getElementById“container”后跟一个getElementsByTagName“img”和一个循环可以将每个图像边框随机设置为不同的颜色。不知道,也许我对这个问题读得太多了。我想你是对的,道格。我已经更新了我的解决方案。谢谢:我希望我能再次+1。喜欢图像循环!更多的情况是,每个图像都放在一个.photobox类中,该类的边框颜色由CSSI中的边框颜色定义。think Matt只希望每个框都以随机颜色开始,而不是在一个屏幕上循环使用颜色timer@Jonathan,OP提到他想更改图像的边框颜色。也许一个getElementById“container”后跟一个getElementsByTagName“img”和一个循环可以将每个图像边框随机设置为不同的颜色。不知道,也许我对这个问题读得太多了。我想你是对的,道格。我已经更新了我的解决方案。谢谢:我希望我能再次+1。喜欢图像循环!更多的情况是,每个图像都放在一个.photobox类中,该类的边框颜色由CSHERE中的border color定义。下面是翻译的文档:@Kobi,如果您将答案从body更新为img,从color更新为border color,我将向上投票以抵消jQuery向下投票。现在,您的回答并没有完全解决OP提到的问题,他需要更改图像的边框颜色,只是为了澄清:我投了反对票,因为OP没有要求使用jQuery解决方案,而是JavaScript解决方案。由于没有提供答案的解决方案,我忘了在第一条评论中写上。没问题。你可以这样做。从数组中获取随机字符串的代码与jQuery无关,但是…@Kobi,如果您将答案从body更新为img,从color更新为border color,我将向上投票以抵消jQuery向下投票。现在,您的回答并没有完全解决OP提到的问题,他需要更改图像的边框颜色,只是为了澄清:我投了反对票,因为OP没有要求使用jQuery解决方案,而是JavaScript解决方案。由于没有提供答案的解决方案,我忘了在第一条评论中写上。没问题。你可以这样做。但是,从数组中获取随机字符串的代码与jQuery无关……是的,就是这样——每一个
图像具有随机选择的颜色。虽然每个图像都保存在主体中的一个相框中。相框{溢出:隐藏;宽度:400px;最大高度:300px;边框:实心5px;边框颜色:ffffff;}是的-就是这样-每个图像都有随机选择的颜色。虽然每个图像都保存在主体中的一个相框内。相框{溢出:隐藏;宽度:400px;最大高度:300px;边框:实心5px;边框颜色:ffffff;}@Matt如果您的问题不准确,请编辑它,使其包含正确的信息。在个人评论中发布更新而不更新问题对所有提供答案的人都没有多大帮助。酷-我编辑了question@Matt如果您的问题不准确,请对其进行编辑,使其包含正确的信息。在个人评论中发布更新而不更新问题对所有提供答案的人都没有多大帮助。酷-我已经编辑了问题
$(".photobox").each(function(){
  var colors = ["#CCCCCC","#333333","#990099"];
  var rand = Math.floor(Math.random()*colors.length);
  $(this).css("borderColor", colors[rand]);
});
$(function(){ 
  var colors = ['#ff6','#6ff','#f6f','#f66','#66f','#6f6']; 
  $('input').click(function(){ 
      var randomcolor=Math.floor(Math.random()*colors.length); 
      //alert(randomcolor); 
      $('body').css('color',colors[randomcolor]); 
  }); 
});
function getElementsByClassName ( classname, node ) {
    if ( !node ) {
        node = document.getElementsByTagName ( "body" )[0];
    }

    var a = [];
    var re = new RegExp ( '\\b' + classname + '\\b' );
    var els = node.getElementsByTagName ( "*" );
    for ( var i = 0, j = els.length; i < j; i++ ) {
        if ( re.test ( els[i].className ) ) {
            a.push ( els[i] );
        }
    }

    return a;
}

var photoboxes = getElementsByClassName ( 'photobox' );
var colors = Array ( 'red', 'blue', 'green', 'pink' );
for ( var i = 0; i < photoboxes.length; i++ ) {
    var images = photoboxes[i].getElementsByTagName ( 'img' );

    for ( var j = 0; j < images.length; j++ ) {
        images[j].style.borderColor = colors[Math.floor ( Math.random () * colors.length )];
    }
}