Jquery 更改链接的内部文本

Jquery 更改链接的内部文本,jquery,Jquery,我尝试了几种不同的方法: 我有动态菜单,填充父菜单和子菜单 我需要更改链接中的内部文本 $("li:has('a'):contains('NAME1')").ReplaceWith('Name2'); $("li:has('a'):contains('NAME1')").text('Name2'); 所有这些似乎都不起作用,因为它们删除了完整的链接。我不想更改链接,只想更改 强化甜酒 您的代码应该可以工作: 给定html: <a href="somelink">Text<

我尝试了几种不同的方法:

我有动态菜单,填充父菜单和子菜单

我需要更改链接中的内部文本

$("li:has('a'):contains('NAME1')").ReplaceWith('Name2');

$("li:has('a'):contains('NAME1')").text('Name2');
所有这些似乎都不起作用,因为它们删除了完整的链接。我不想更改链接,只想更改

  • 强化甜酒
  • 您的代码应该可以工作: 给定html:

    <a href="somelink">Text</a>
    
    这很有效

    您可能选错了选择器?发布更多的HTML

    假设你有

     <ul class="js-my-menu">
        <li><a href="somelink">Name1</a></li>
     </ul>
    
    JSIDLE链接:


    注意,类名中的
    js-
    前缀是突出显示类的最佳实践方法,这些类仅用作附加JavaScript行为的挂钩,不应用于样式设置。这提高了可维护性。

    假设您的HTML来自:

    $(“li:has('a'):contains('NAME1'))。text('Name2')
    几乎正确,但您选择了错误的元素(
    li
    ,而不是
    a

    您只需执行以下操作:

    $("li:contains('NAME 1') a").text('Name 2');
    

    演示:
    $(“li:contains('Name 1')a”).text('Changed text')
    
    

    如果您想更改
    的文本,那么为什么选择
  • ?Hi Regent。谢谢你的回复。菜单在
  • 元素中动态填充。正文中可能有多个名称可以更改值,因此我需要将ul-->li elements onlyie中的值作为目标
    @dale2014调整了我的答案。应该做这项工作。
    $(“li a:contains('NAME1'))。text('Name2')
    如果您想查看
    NAME1
    谢谢Juri。我的朋友,这很好用。感谢所有发帖子的人。干得好,伙计们,
     <ul class="js-my-menu">
        <li><a href="somelink">Name1</a></li>
     </ul>
    
    $('.js-my-menu').find('a:contains("Name1")').text('new text');
    
    $("li:contains('NAME 1') a").text('Name 2');