2011-08-08 40 views
0

我試着寫一個循環來包裹上通過jQuery的圖片所有的img:JQuery的每一個()失敗循環

var $csstring = "div.article_column a img"; 
$($csstring).each(
    function() {  
     $($csstring).parent().wrap("<div class='dropshadow'></div>"); 
}); 

,我收到此:

<div class="dropshadow"> 
    <div class="dropshadow"> 
     <div class="dropshadow"> 
      <div class="dropshadow">> 
       <div class="dropshadow"> 
        <a target="_blank" href="/ferdynand.jpg"> 
         <img height="126" width="190" border="0" src="aae7dda0d83bf7df21ce6f834db8228a.jpg"> 
        </a> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

我的意思是這是5張圖片用同樣的CSS,有人可以幫助我嗎?

+1

它很小,但約定是在變量名的開頭使用'$',如果它將被分配一個jquery對象。在這種情況下'$ csstring'是一個字符串變量,因此可能會讓'$'混淆。 –

回答

0

而是執行此操作:

$($csstring).each(function() { 
    $(this).parent().wrap('<div class="dropshadow"></div>'); 
}); 
1

變化$csstringthis循環函數中:

var $csstring = "div.article_column a img"; 
$($csstring).each(
    function() {  
     $(this).parent().wrap("<div class='dropshadow'></div>"); 
    }); 
3

你可以做到這一點沒有循環

// this contains an array of elements 
var $csstring = $("div.article_column a img"); 

// this will wrap all objects with your html 
$csstring.wrap("<div class='dropshadow'></div>"); 

注意:您需要$()來包裝你的字符串使用變量一個jQuery對象。

編輯: 如果你想在陣列中訪問特定的節點...

var $firstElement = $($csstring[0]); 
+0

如果這回答了您的問題,請點擊對號。 :) – Trevor

0

我不認爲你甚至需要每。只是這樣做:

$("div.article_column a img").parent().wrap("<div class='dropshadow'></div>");