JQuery each()失败循环



我尝试通过Jquery编写一个循环来包装图片上的所有img:

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,谁能帮助我吗?

不需要循环

// 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]);

在循环函数中将$csstring改为this:

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

改为:

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

我认为你甚至不需要这些。只需这样做:

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

相关内容

  • 没有找到相关文章