试图通过jQuery / replace()删除括号内的锚文本

时间:2014-08-20 16:12:38

标签: javascript jquery html regex replace

我一直在搜索stackoverflow来找到解决方案,但我似乎无法弄清楚我做错了什么。我正在尝试在菜单中的主/父链接中选择“()”括号内的任何内容,并使用.replace()删除它们,但似乎没有发生任何事情。

JSFiddle: http://jsfiddle.net/1rndwz3u/1/

JS:

jQuery(document).ready(function () { 
    jQuery(".menu-name-menu-category-menu ul.nav li > a").html().replace(/\(.*?\)/g,"");
});

HTML:

<div class="menu-name-menu-category-menu">
    <ul class="menu nav">
        <li class="first expanded dropdown active-trail">
            <a title="Heavy Equipment Rentals (0)" href="#">Heavy Equipment Rentals (0)<span class="caret"></span></a>
            <ul class="accordion-body">
                <li><a title="Excavator Rentals (2)" href="#">Excavator Rentals (2)</a></li>
                <li><a title="Mini Excavator Rentals (6)" href="#">Mini Excavator Rentals (6)</a></li>
                <li><a title="Skid Steer Rentals (9)" href="#">Skid Steer Rentals (9)</a></li>
            </ul>
        </li>
        <li class="active-trail"><a title="Tool Rentals (1)" href="#">Tool Rentals (1)</a></li>
        <li class="last expanded dropdown active-trail">
            <a title="Construction Rentals (0)" href="#">Construction Rentals (0) <span class="caret"></span></a>
            <ul class="accordion-body">
                <li><a title="Gator, UTV &amp; ATV Rentals (2)" href="#">Gator, UTV &amp; ATV Rentals (2)</a></li>
            </ul>
        </li>
    </ul>
</div>

我尝试过使用.html().text(),但都没有做过任何事情,也尝试抓住“租借”代替括号的正则表达式,但也没有用。非常感谢帮助。感谢。

3 个答案:

答案 0 :(得分:2)

我还没看好小提琴但是

jQuery(".menu-name-menu-category-menu ul.nav li > a").html().replace(/\(.*?\)/g,"");

返回一个字符串,必须重新设置为HTML。

var HTML = jQuery(".menu-name-menu-category-menu ul.nav li > a").html().replace(/\(.*?\)/g,"");
jQuery(".menu-name-menu-category-menu ul.nav li > a").html( HTML );

答案 1 :(得分:2)

您正在编辑值但没有对其执行任何操作。尝试用另外一个html()调用来包装它:

jQuery(document).ready(function () {
    var target =  jQuery(".menu-name-menu-category-menu ul.nav li > a");
    target.html(target.html().replace(/\(.*?\)/g,""));
});

答案 2 :(得分:1)

工作小提琴here

jQuery(document).ready(function () { 
    $( ".menu-name-menu-category-menu ul.nav li.expanded > a" ).each(function( index,elem ) {
          $(elem).html($(elem).html().replace(/ *\([^)]*\) */g, ""));
    });

});