简体   繁体   English

用jQuery环绕链接文本

[英]Wrap a span around link text with jQuery

I would like to dynamically wrap the text in my menu links with spans if the parent element has a certain class. 如果父元素具有某个类,我想动态地在菜单链接中使用跨度包装文本。

What I have: 我有的:

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

What I want to do is, if the parent element on line 1 has the class "block" I would like the text "MenuItem" in the to be wrapped with spans so I get something like this: 我想做的是,如果第1行的父元素具有类“ block”,我希望其中的文本“ MenuItem”用span包裹起来,那么我会得到如下信息:

<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>

What I tried is (Please don't laugh): 我尝试过的是(请不要笑):

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

Which didn't work since it's probably wrong on so many levels but you'll get the gist of it 这没有用,因为在许多级别上可能都错了,但是您将领会到它的要点

JQuery has the hasClass function. jQuery具有hasClass函数。 So to verify it an element has a certain class just use: 因此,要验证它是否具有某个类,只需使用:

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

    });      
  }
});

试试: if (jQuery('mt-menu-container').hasClass('.block'))不是if (jQuery('.mt-menu-container.block'))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM