2013-01-25 49 views
0

我有一個img,它被包裝到div容器中。現在我想將img類添加到周圍的div。我怎樣才能完成這與jQuery?如何將img類添加到周圍的div

<div class="imagecontainer"> 
    <div class="imagebackgroud"></div> 
    <div class="imageicon"></div> 
    <img class="aligncenter"> 
</div> 

的.imagebackground和.imageicon的div可以忽略不計,我想的IMG類 「.aligncenter」 添加到.imagecontainer股利。

+0

''〜=='! ' –

+0

正如roxon所說,你的img標籤可能無法解析,如果沒有src屬性 –

+0

啊對不起,當然img有一個src屬性 – tomyam

回答

1
$(".imagecontainer").addClass($('.imagecontainer img').attr("class")); 

這假設有在容器的圖像。

$(".aligncenter").parent().addClass("aligncenter"); 

這個假設圖像有一個alignCenter類,只是將相同的已知類放在父級上。

或者你可以使用發現:

$(".imagecontainer").addClass($(".imagecontainer").find('img').attr("class")); 

編輯 確定,所以根據您的評論...

$("img.aligncenter").parent().addClass("aligncenter") 

應該工作。它將所有圖像定位到「aligncenter」類,然後將該類添加到父級。雖然這看起來非常接近示例2,但它以這種方式專門針對類alignCenter中的圖像。

這裏是一個小提琴工作: http://jsfiddle.net/U5vRe/

+0

您的代碼中的'this'引用'window'對象。 – undefined

+0

好的電話。謝謝 –

+0

謝謝啓,代碼1和3正在工作,但有一件事我忘了提及:img有幾個類,我怎麼只能添加類「aligncenter」到div?目前它添加所有類。 – tomyam

1

嘗試這種情況:

$('img.aligncenter').parent().addClass('aligncenter'); 

使用父()http://api.jquery.com/parent/

否則:

$('.imagecontainer').addClass('aligncenter'); 
+0

我也試圖用'parent()'來定位div,但它不起作用。我不能使用第二個代碼,因爲不是所有的'img'都有aligncenter類。我只想將類.aligncenter添加到圖像具有此類的div。 – tomyam

1

試試吧:) http://jsfiddle.net/nlphuong/xm38X/

$(document).ready(function(){ 
    $("img").parent("div").addClass($("img").attr("class")); 
}); 

PS:先用的jsfiddle試試:))

+0

使用父母()調用div不適用於我:-( – tomyam

+0

.closest(「div」) – user1487380

+0

如何:$(「img」)。closet(「div」)。addClass($(「img 「).attr(」class「))??nope .. – tomyam