用jQuery包裹链接文本的范围

时间:2014-10-25 13:07:21

标签: jquery html

如果父元素有某个类,我想动态地将菜单链接中的文本换成spans。

我有什么:

<div class="mt-menu-container block">
    <ul id="menu" class="sf-menu sf-js-enabled">
        <li><a href="#">MenuItem</a></li>
    </ul>
</div>

我想要做的是,如果第1行的父元素具有类“块”,我希望文本“MenuItem”包含在跨度中,所以我得到这样的结果:

<div class="mt-menu-container block">
    <ul id="menu" class="sf-menu sf-js-enabled">
        <li><a href="#"><span>MenuItem</span></a></li>
    </ul>
</div>

我尝试的是(请不要笑):

// Menu Block Style
if (jQuery('mt-menu-container.block')) {
   $('#menu > li > a').each(
       function(){
           $(this).wrap('<span></span>');
       });
}

哪个不起作用,因为它可能在很多层面上都是错误的,但你会得到它的要点

2 个答案:

答案 0 :(得分:3)

JQuery具有hasClass功能。因此,为了验证它,元素只有一个类使用:

$('.mt-menu-container').each(function(){
  if($(this).hasClass('block')) {
    $(this).find('a').each(function(){
      $(this).wrapInner('<span></span>');

    });      
  }
});

答案 1 :(得分:0)

尝试: if (jQuery('mt-menu-container').hasClass('.block'))代替if (jQuery('.mt-menu-container.block'))