2013-02-28 50 views
3

尝试抓取可见的divs的类名称,然后将prepend的小数位转换为我得到的类名的小数。 任何帮助将是伟大的,谢谢。抓住可见的div类,然后添加一个。到找到的每个类的前面

这是我到目前为止。

$('#imagefiles ul li img').click(function() { 
    var open = $(".open:visible").attr("class"); 
    var n = open.split(","); 
    alert(n); 
}); 

只有一个div将是可见的,并且div将有两个类名。
得到这样的班级名称的重点是,我可以将append图像打开到其中的<div class="edititable">。当我尝试这段代码时,什么都没有发生有什么想法吗?

$('#imagefiles ul li img').click(function() { 
    //Get the source of the image that was clicked 
    var img = $(this).attr('src'); 

    //Grab the class name of the opened folder and prepend a decimal to it. 
    var classes = $(".open:visible").attr("class").split(" "); 
    var classesWithDot = ""; 

    $.each(classes, function (index, value) { 
     classesWithDot += " ." + value; 
    }); 

    $(' + classesWithDot + ').find('.edititable').append('<img src="' + img + '" style="width:30%; height:30%;" ">'); 

}); 
+0

我回来的价值将有两个类名称。每个具有.open类的div都有另一个独特的类名。所以如果我回到'打开HTML5'的值,我想在每个前面添加一个小数,所以结果将是.open .HTML5 – 2013-02-28 20:41:47

回答

0

这个怎么样?小提琴:http://jsfiddle.net/wf9u9/

$('#imagefiles ul li img').click(function() { 
    var classes = $(".open:visible").attr("class").split(" "); 
    var classesWithDot = ""; 

    $.each(classes, function (index, value) { 
     classesWithDot += " ." + value; 
    }); 

    alert(classesWithDot); 
}); 
+0

您的代码工作的方式,谢谢。想要的类名,所以我可以挑出打开的div,然后找到该类中的“edititable”div并在if中添加一个图像。 – 2013-02-28 21:22:57

+0

@TravisMichaelHeller还有一种更简单的方式来获得'editable'元素,只需执行'$(“。open:visible.editable”)。append(“”);'' – mattytommo 2013-02-28 21:24:45

0

假设有多个div并且要聚集所有独特的类名。

var result = []; 
var uniqueClasses = {}; 
$(".open:visible").each(function() { 
    var lst = $(this).attr('class').split(/\s+/); // this.className would also work 
    for(var i=0; i<lst.length; i++) 
     uniqueClasses[lst[i]] = true; 
}); 
for(var k in uniqueClasses) 
    result.push("." + k); 
console.log(result); 
console.log(result.join(""));