2013-02-28 25 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("")); 
相關問題