2011-07-08 34 views
0

改變WP字幕內嵌樣式我想要使用jQuery修改WordPress的[標題]簡碼的HTML,其HTML基本上是這樣的:使用jQuery從屬性的img

<div class="wp-caption" style="width: 310px"> 
<img class="size-medium" src="..." width="300" height="200" alt="" /> 
<p class="wp-caption-text">The caption is here.</p> 
</div> 

的問題這個(至少對我來說)是當圖像標題出現時,WordPress爲.wp-caption容器添加一個額外的10px。我想重置這個內聯樣式,使其與圖片的width屬性相同。我不完全知道如何在var零部件這應該工作(或者,如果有更好的方法來連接字符串),我會很感激的方向是正確的幫助:

jQuery().ready(function() { 
    jQuery(".wp-caption").removeAttr("style"); 
    var width = jQuery(".wp-caption img").Attr(width); 
    var width = jQuery(width).Prepend('width:'); 
    var width = jQuery(width).Append('px'); 
    jQuery(".wp-caption").attr('style', jQuery(width)); 
    }); 

更新1:現在我只需要弄清楚在頁面上有多個圖像時如何工作。 我嘗試將它包裝在.each(function(n)中,但它仍然佔用第一張圖像的寬度並將其應用於所有容器。

jQuery().ready(function() { 
    jQuery(".wp-caption").each(function(n) { 
    var width = jQuery(".wp-caption img").width(); 
    jQuery(".wp-caption").width(width); 
    }); 
    }); 

更新2:解決-看到this thread

+0

@webXL @伊戈爾 - 德莫夫謝謝! – ryanve

回答

1

試試這個:

var width = jQuery(".wp-caption img").width(); 
jQuery(".wp-caption").width(width); 
+0

工程就像一個魅力! – ryanve

+0

這是有效的,除了當頁面上有多個圖像時,它將從第一個圖像獲取寬度並將其應用於所有容器。任何想法如何做每一個? – ryanve

1
$(document).ready(function() { 
    var width = $(".wp-caption img").attr("width") + "px"; 
    $(".wp-caption").css('width', width); 
}); 
+0

將$更改爲jQuery,並且這個作品很有魔力! – ryanve

+0

...除了頁面上有多個圖像時,它會從第一個圖像中獲取寬度並將其應用於所有容器。任何想法如何做每一個? – ryanve