2010-06-22 59 views
1

我要讓我的圖片爲使用jQuery的幫助鏈接:的jQuery的insertBefore,insertAfter問題

$("img:gt(0)").each(function() { 
      var curr = $(this); 
      if (curr.width() >= 500) { 
       var m = 500/curr.width(); 
       curr.height(curr.height() * m); 
       curr.width(curr.width() * m); 
      } 
      $("<a href='" + curr.attr("src") + "'>").insertBefore(curr); 
      $("</a>").insertAfter(curr); 
     }); 

但我發現了:

<a href="/Images/7827-1280x800.jpg"></a> 
<img height="800" width="1280" src="/Images/7827-1280x800.jpg" alt="" style="height: 312.5px; width: 500px;"> 

相反的:

<a href="/Images/7827-1280x800.jpg"> 
<img height="800" width="1280" src="/Images/7827-1280x800.jpg" alt="" style="height: 312.5px; width: 500px;"> 
</a> 

回答

2

你不必這樣做。您可以使用wrap來執行此操作。

喜歡的東西

curr.wrap("<a href='" + curr.attr("src") + "' />"); 
1

你可以使用的jQuery

$("img:gt(0)").each(function() { 
    var curr = $(this); 
    if (curr.width() >= 500) { 
     var m = 500/curr.width(); 
     curr.height(curr.height() * m); 
     curr.width(curr.width() * m); 
    } 
    curr.wrap($('<a href="' + curr.attr("src") + '">')); 
}); 
1

這是因爲$("<a href='" + curr.attr("src") + "'>")將創建一個普通的HTML元素提供的包裝()方法。我認爲,jQuery將忽略缺少的結束標記並創建這個html:<a href="/Images/7827-1280x800.jpg"></a>$("</a>")將被忽略。