2011-05-11 88 views
0

好的,所以我試圖用JQuery關閉一個img(我知道,我知道...不是我的模板)。發生了什麼是--JQuery關閉了我正在添加的標籤.before ...我不希望它關閉,直到我加入...之後...我真的在爲此付出努力。任何幫助,將不勝感激。我試過.prepend/.append和.wrap ...問題添加HTML .before .after img與JQuery - JQuery結束標記

這裏是代碼...

$(document).ready(function(){ 
$("img.bottomShadow").each(function(){ 
    var imageWidth = $(this).attr("width"); 
    var width = imageWidth + 10; 
     $(this).before("<span class='image_shadow_container'>"); 
     $(this).after("<img class='noimgbg' alt='' src='images/image_shadow.png' width='" + width + "'></span>"); 
}); 

});

我要的是是這樣的:

<span class="image_shadow_container"> 
             <img src="images/fwidth_img_3.jpg" class="image_shadow" alt="" /> 
             <img src="images/image_shadow.png" alt="" width="300" class="noimgbg" /> 

            </span> 

我得到的是這樣...

<span class="image_shadow_container"></span> 
<img class="bottomShadow" width="160" height="128" alt="" src="images/newsimages/smallben.jpg"> 
<img class="noimgbg" width="170" src="images/image_shadow.png" alt=""> 

隨着跨度被關閉 「早」 的jQuery ...任何想法?

回答

2

你必須.wrap(),不使用.before(),如jQuery的解析和修正未關閉的標籤:

$("img.bottomShadow").each(function(){ 
    var imageWidth = $(this).attr("width"); 
    var width = imageWidth + 10; 

    $(this).wrap("<span class='image_shadow_container' />"); 
    $(this).after("<img class='noimgbg' alt='' src='images/image_shadow.png' width='" + width + "'></span>"); 
}); 
0

首先建立你所有的HTML代碼轉換成字符串,然後使用jQuery把它。