如何根据父ID替换字符串?

时间:2019-07-01 15:40:41

标签: javascript jquery replace

我正在测试一堆内容,而不是处理多个页面,而是从一个索引页面中使用PHP加载每个元素。每个“页面”都有一段带有面包屑行的代码。我正在尝试使用JavaScript定位“当前”位置行,并将其替换为其父ID以显示当前位置。

这是我已经尝试过的:JSfiddle

$('.show #filter.menu').each(function() {

  var parID = $(this).parent().attr('id');
  var parCL = $(this).parent().attr('class');

  if (parCL.search('show'))
    $('.menu .breadcrumbs .current').text($(this).text().replace('Here', parID));

});

理想情况下,我希望将“此处”替换为面包屑父母ID的内容。如:首页|存档首页|人

但是我却得到了首页|主页存档

我不确定是怎么回事。

谢谢

1 个答案:

答案 0 :(得分:1)

问题出在这一行:

$('.menu .breadcrumbs .current').text($(this).text().replace('Here', parID));

在上下文中,$(this)是指从第一行开始的循环的当前元素。因此$(this).text()返回“ Home Here”,因为两个单词在id为“ filter”的同一节宽度中。然后,您的代码将替换父ID的“此处”宽度。结果就是“家庭档案”。

因此,不必替换“此处”,您只需将.current的文本设置为父ID:

$('.menu .breadcrumbs .current').text(parID);