Javascript 为什么更改文本时会删除li元素中的链接(锚元素)?

Javascript 为什么更改文本时会删除li元素中的链接(锚元素)?,javascript,jquery,Javascript,Jquery,我在jQuery 2.1.3中遇到了奇怪的行为。当我替换列表中锚元素中的文本时,锚元素将被移除。我怀疑这与我的选择器有关,但我不明白为什么 选择器: $("ul li:nth-child(2) a, ul li") 这显示了我的代码并演示了奇怪的行为。因为您正在选择和 三 法语 这是一本书 请注意,选择器已更改: $("ul li:nth-child(2) a, ul li:not(:nth-child(2))") 问题是您原来的选择器 $("ul li:nth-child(2) a,

我在jQuery 2.1.3中遇到了奇怪的行为。当我替换列表中锚元素中的文本时,锚元素将被移除。我怀疑这与我的选择器有关,但我不明白为什么

选择器:

$("ul li:nth-child(2) a, ul li")

这显示了我的代码并演示了奇怪的行为。

因为您正在选择
  • 
    

  • 法语
    这是一本书

    请注意,选择器已更改:

    $("ul li:nth-child(2) a, ul li:not(:nth-child(2))")
    
    问题是您原来的选择器

    $("ul li:nth-child(2) a, ul li")
    
    替换选择器第二部分指定的所有li标签
    ul li
    ,无论
    li
    内部是什么

    $(函数(){
    $(“按钮”)。在(“单击”)上,函数(e){
    var araEnglish=新数组('1','2','3'),
    arafrence=新数组('un','deux','trois'),
    $thisTxt=$(this.text().trim();
    $(“ul li:nth child(2)a,ul li:not(:nth child(2)))。每个(函数(i){
    如果($thisTxt=='To French')txt=$(this).text(阿拉法文[i]);
    else txt=$(this).text(英语[i]);
    });
    $(this).text($thisTxt=='To French'?'To Anglais':'To French');
    });
    });
    
    
    
    • 一个

    法语
    根据您的选择器,您正在替换
  • 元素和
    
    


  • 对于法语
    调用
    .text()
    将替换
    li
    的所有内容,包括锚定。首先,尝试替换
    $(this).text(“deux”)
    $(this.children().text(“deux”)@rontornanbe查看所有其他答案。谢谢+一个正确的解决方案,但安东先到了。你用来说明你的答案的网站的链接是什么?对不起,你要找的是哪一个链接?有按钮的链接(运行代码段…)。这是一个很好的链接。它们直接从一个post:D的主体运行