将元素环绕在主元素的 children 周围。 JQLite

Wrap element around children of main element. JQLite

我正在使用 angular 和 JQLite。我有一个带有属性指令的元素 <md-button my-attr>MyText<md-icon>close</md-icon>

在我的 attr 指令中,我想将 <div layout=row flex></div> 包裹在 <md-button> children 周围。

我使用了 wrap(), children().wrap(),我尝试用包装的 contents() 替换 contents()。我一直遇到的问题是:

<md-button my-attr><div layout=row flex>MyText</div><div layout=row flex><md-icon>close</md-icon></div></md-button>

我需要 1 div 包裹它们。

<md-button><div layout=row flex>MyText<md-icon>close</md-icon></div></md-button>

// $元素是 // 我尝试了几种方法,这是我最后尝试的方法。

        var content = $element.children().wrap('<div layout=row flex></div>');
        $element.empty();
        $element.append(content);

澄清一下。

<md-button> 是 $element。我想将 $element 的 children 包装在一个 div 中。所以 <md-button><child/><child/><child/></md-button> 变成 <md-button><div><child/><child/><child/></div></md-button>

directive('myDirective',[function(){
  return{
    restrict:'A',
    scope:{},
    link:function(scope,element,attr){
      element.wrap('<div class=".outer"></div>');
    }
  };
}]);

这将使用具有 class .outer 的 div 包装您的元素。像这样使用 <div my-directive>Element</div>

       var content = "<div layout=row flex>" + $element.html() + "</div>";
        $element.empty();
        $element.append(content);

能够从: #1

如果你有

<md-button>
  <child/>
  <child/>
  <child/>
</md-button>

你想要

<md-button>
  <div>
    <child/>
    <child/>
    <child/>
  </div>
</md-button>

那就试试这个

element.html(angular.element('<div></div>').html(element.contents()));