首页 > 解决方案 > 如何根据父 ID 替换字符串?

问题描述

我正在测试一堆内容,而不是处理多个页面,我只是从一个索引页面用 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));

});

理想情况下,我希望将“Here”替换为面包屑父项的 ID 内容。如:首页 | 档案主页 | 人

但相反,我正在回家 | 家庭档案

我不确定出了什么问题。

谢谢

标签: javascriptjqueryreplace

解决方案


问题出在这一行:

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

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

因此,您可以将文本设置.current为父 ID,而不是替换“这里”:

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

推荐阅读