Jquery 分别向每个li添加一个子项

Jquery 分别向每个li添加一个子项,jquery,html,css,appendchild,Jquery,Html,Css,Appendchild,我正在尝试为列表中的每个项目分别添加一个窗帘div。我可以轻松地为每个项目添加一个div,包括: $("ul li a").append('<div class="curtain"></div>'); 目前不适用于此,我不确定原因。您可以使用键入的同一行,但需要进行一些编辑: $("ul li")each(function() { var new_div=$('<div class="curtain"></div>'); //

我正在尝试为列表中的每个项目分别添加一个窗帘div。我可以轻松地为每个项目添加一个div,包括:

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

目前不适用于此,我不确定原因。

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

$("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);
  });
$(“ul li”)每个(函数()
{
var new_div=$('');
//使用代码获取颜色
新的_div.css({“背景”:'rgb('+rgb.r+'、'+rgb.g+'、'+rgb.b+'))
//$(这)是一个(ul li)项目
$(this.find(“a”).append(new_div);
});

通过稍微修改
窗帘
函数来循环使用
每个
(并使用jQuery选择器),应该可以轻松地纠正问题

function curtain(){
    $('ul li').each(function(){ //loop through each `ul li` element
        var $a = $('a', this), //find the `a` element in `li` equivalent to `$(this).find('a')`
            img = $('img', this)[0], //get the element from the jQuery object
            $div = $('<div class="curtain" />'), //create a new div with your class curtain
            rgb = new ColorFinder(function favorHue(r,g,b){ //get rgb from your class
                //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(img);
        if(rgb.r && rgb.g && rgb.b){
            $div.css('background', 'rgb('+rgb.r+','+rgb.g+','+rgb.b+')');
        }
        $a.append($div); //append div to the `a` element
    });
};
功能窗帘(){
$('ul li')。每个(function(){//循环遍历每个'ul li'元素
var$a=$('a',this),//在'li'中找到与`$(this)等价的'a'元素`
img=$('img',this)[0],//从jQuery对象获取元素
$div=$(“”),//用类创建一个新的div
rgb=newcolorfinder(函数favorHue(r,g,b){//从类中获取rgb
//排除白色
//如果(r>245&&g>245&&b>245)返回0;
返回值(Math.abs(r-g)*Math.abs(r-g)+Math.abs(r-b)*Math.abs(r-b)+Math.abs(g-b)*/65535*50+1;
}).getMostProminentColor(img);
if(rgb.r&&rgb.g&&rgb.b){
$div.css('background'、'rgb('+rgb.r+'、'+rgb.g+'、'+rgb.b+'));
}
$a.append($div);//将div附加到'a'元素
});
};

$(“选择器”).each(function(){$(this).append(“”);}
如果您使用jQuery,为什么要做类似于
document.getElementByTagName('ul li');
文档的事情呢?
文档。getElementByTagName
甚至不存在,它是
文档.getElementsByTagName
,只有在您给它一个标记名(即“ul”)时才有效或“李”)
function curtain(){
    $('ul li').each(function(){ //loop through each `ul li` element
        var $a = $('a', this), //find the `a` element in `li` equivalent to `$(this).find('a')`
            img = $('img', this)[0], //get the element from the jQuery object
            $div = $('<div class="curtain" />'), //create a new div with your class curtain
            rgb = new ColorFinder(function favorHue(r,g,b){ //get rgb from your class
                //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(img);
        if(rgb.r && rgb.g && rgb.b){
            $div.css('background', 'rgb('+rgb.r+','+rgb.g+','+rgb.b+')');
        }
        $a.append($div); //append div to the `a` element
    });
};