jquery - 分别为每个 li 添加一个 child

标签 jquery html css appendchild

我正在尝试分别为列表中的每个元素添加一个窗帘 div。我可以轻松地为每个元素添加一个 div:

$("ul li a").append('<div class="curtain"></div>');

但我需要能够设置创建的每个窗帘的背景颜色属性。

function curtain() {
        var el = document.getElementByTagName('ul li');
        this.anchor = el.querySelector('a');
        this.image = el.querySelector('img');
        this.curtain = document.createElement( 'div' );
        this.curtain.className = 'curtain';
        var rgb = new ColorFinder( function favorHue(r,g,b) {
            // exclude white
            //if (r>245 && g>245 && b>245) return 0;
            return (Math.abs(r-g)*Math.abs(r-g) + Math.abs(r-b)*Math.abs(r-b) + Math.abs(g-b)*Math.abs(g-b))/65535*50+1;
        } ).getMostProminentColor( this.image );
        if( rgb.r && rgb.g && rgb.b ) {
            this.curtain.style.background = 'rgb('+rgb.r+','+rgb.g+','+rgb.b+')';
        }
        this.anchor.appendChild(this.curtain);
    };

目前不适用于此,我不确定为什么。

最佳答案

您可以使用您输入的同一行,但进行一些编辑:

$("ul li")each(function()
  {
    var new_div=$('<div class="curtain"></div>');
    // get the color with your code 
    new_div.css({"background":'rgb('+rgb.r+','+rgb.g+','+rgb.b+')'})
    //$(this) is an (ul li) item
    $(this).find("a").append(new_div);
  });

关于jquery - 分别为每个 li 添加一个 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23915048/

相关文章:

jquery - 手机中的谷歌重力功能

javascript - 如果选择网站更新框,请通知我?

html - 将包含 3 个图像的 .container block 居中

jquery.ui.resizeable.js 不包含文本,如果太多而无法放入容器

html - 哪个 CSS 更快?上限大小会提高速度吗?

php - 如何在 jQuery 自动完成中显示多个字段,并且在选择结果时只有一个字段在文本框中可见?

javascript - 相同的 JavaScript 两次导致 slider 冲突

javascript - 如何从另一个 div 中找到某个最近的嵌套 <select>

html - 如何在页面顶部创建一个倾斜的 div 标题

javascript - 为什么我的 JS 脚本只有在链接到 "head"部分时才有效?