jQuery将按钮的文本更改为单击按钮的文本

时间:2014-07-02 15:18:41

标签: javascript jquery css

当选择菜单的锚点按钮内的子菜单的锚点时...我希望将按钮的文本更改为子菜单的锚点的文本。此外,如果文字超过12个字符,则应将其更改为前9个字符,然后按' ...'

此菜单的HTML为:


                <ul class="role-menu">
                    <li><a href="#">Podcast</a></li>
                    <li class="viewby-role">
                        <a href="#">View by Role</a>
                        <ul class="viewby-inner">
                            <li><a href="#">View all Roles</a></li>
                            <li><a href="#">Blount</a></li>
                            <li><a href="#">Lieutenant</a></li>
                        </ul>
                    </li>
                </ul>

假设什么时候中尉&#39;点击&#39;按角色查看&#39;文字应该变成“谎言”。

这可以使用jQuery吗?非常困在这个

3 个答案:

答案 0 :(得分:3)

$('.viewby-inner a').on('click', function() {
    var text = $(this).text();

    text = text.length >= 12 ? text.slice(0, 9) + '...' : text;

    $('.viewby-role a:first').text(text);
});

FIDDLE

答案 1 :(得分:1)

如果你有几个role-menu块或几个子菜单,以下内容应该为所有人做:

$('.viewby-inner a').on('click', function(e) {
    e.preventDefault();
    var targ = $(this).closest('li.viewby-role').children('a').first(),
        txt = this.text;
    txt = txt.length > 12 ? txt.substring(0,9) + '...' : txt;
    targ.text( txt );
});

WORKING JSFIDDLE DEMO

答案 2 :(得分:0)

试试这个,

$('.viewby-inner a').on('click', function() {
      var text = $(this).text();
     text = text.length >= 12 ? text.substr(0, 9) + '...' : text;

    $('.viewby-role a:first').text(text);
 });

Demo