将节点添加到jQuery选择

时间:2011-03-03 09:24:32

标签: jquery

我有一个函数,它将包装应用于不同的元素(并做一些与此问题无关的其他内容)。我希望函数返回wrap元素的全局性作为jQuery选择。我不想重新选择它们。

我尝试过这样的事情:

myfunction(){
 return $mythings.each(function(){
  $wrap = $("div.wrap");
  $(this).wrap($wrap);
  //do some other stuff
  return $wrap;
 });
};

但这回归了$ mythings。

所以我试过这个:

myfunction(){
 var $returnOfTheWrap = $();

 $mythings.each(function(){
  $wrap = $("div.wrap");
  $(this).wrap($wrap);
  //some different actions
  return $returnOfTheWrap.push($wrap);
 });

 return $returnOfTheWrap;
};

返回$($(wrap));

知道我怎么解决这个问题?我想得到$(wrap0,wrap1,wrap2)回来

2 个答案:

答案 0 :(得分:1)

我认为你正在寻找地图功能 http://api.jquery.com/jQuery.map/

<SCRIPT type=text/javascript>
        $(function(){
            $.each($(".button"),function(i,n)
            {
                alert(i+ ":" + $(n).html());
            });
            var wrapped = myfunction($(".button"));
            //alert(wrapped.length);
            $.each(wrapped,function(i,n)
            {
                alert(i+ ":" + $(n).html());
            });
        });

            function myfunction(mythings){
                return $.map(mythings,function(n,i){
                    $wrap = $("<div></div>");
                    $(n).wrap($wrap);
                     //do some other stuff
                     return $(n).parent();
                 });
            }

    </SCRIPT>

</HEAD>
<BODY>
    <button class="button">a</button>
    <button class="button">b</button>
    <button class="button">c</button>
</BODY>

答案 1 :(得分:0)

也许你想尝试这样的事情

这会将我的列表框选项(未编辑)返回为DOM元素

var existingtitles = $(“#existingtitles option”)。each(function(){return $(this);});

并将其处理为数组或w / e