jquery,递归替换多个元素

标签 jquery

我遇到了以下问题。 我通过脚注解释一些内容。脚注例如[10] 的格式为 <sup>[10]</sup>screenshot of content with footnotes

我正在尝试替换 <sup>[10]</sup><a href="#m10" data-toggle="modal"><sup>[10]</sup></a>通过使用以下 jQuery:

<script type='text/javascript'>
$(window).on('load', function() {
    $(function(){
        var s = $('sup').html().slice(1, -1);
        $("sup").replaceWith('<a href="#m'+s+'" data-toggle="modal"><sup>['+s+']</sup></a>');
    });
}); 
</script>

不幸的是,这段代码用相同/第一个找到的脚注替换了所有脚注 - 在这种情况下,所有脚注都被替换为“10”(参见屏幕截图)。我想递归地替换每个脚注。

我不知道如何解决这个问题,卡住了几天。也许你们中的任何人都可以帮助我。 非常感谢。

最佳答案

$('sup').each(function () {
  $(this).wrap('<a href="#m' + $(this).html().slice(1, -1) + '" data-toggle="modal"></a>');
});

看看 .each() 方法。问题是您的代码仅运行一次,而不是在每次出现 <sup> 的上下文中运行

关于jquery,递归替换多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34663002/

相关文章:

javascript - 日期选择器后模糊事件

基于内置 CSS 类 .ui-accordion-header 的 Jquery Header Selection

javascript - 使用 d3 在移动设备上缩放触摸

jquery - Bootstrap 表如何使用数据格式化程序中的输入框更改值

javascript - jquery on 方法上的多个函数

javascript - Jquery 代码在没有警报的情况下无法工作

javascript - 将 jQuery 依赖项传递给 Angular js Controller

javascript - 如何在 Google maps v3 API 上异步添加标记?

javascript - 新创建的 CustomEvent 没有自己的属性 ("type")所以 jQuery 失败了?

javascript - Express:jQuery 验证不起作用