检查地址栏中的字符串是否与 li ID 匹配

check if a string in the address bar matches an li id

本文关键字:li ID 匹配 是否 字符串 地址栏 检查      更新时间:2023-09-26

我需要检查我的地址是否有任何与我的 li id 中的单词匹配的单词:

<ul>
   <li id="filter-myId" class="noSelected">Text</li>
</ul>

要检查的网址地址示例:

http://www_link.com/D=.myId

但是在窗口地址栏上,它只显示"myId"而不显示"filter-",所以我想我需要检查"filter-"之后的任何内容是否与窗口地址上出现的字符串匹配。如果是这样,li将得到一个"选择"类

帮助?

我建议,虽然目前未经测试,但大致如下:

var string = document.location.href.split('=')[1];
if ($('li[id*="' + string + '"]').length){
    $('li[id*="' + string + '"]').addClass('selected');
}

要将搜索限制为具有filter-前缀的li元素,请执行以下操作:

var string = document.location.href.split('=')[1];
if ($('li[id^="filter-"][id*="' + string + '"]').length){
    $('li[id^="filter-"][id*="' + string + '"]').addClass('selected');
}

引用:

  • 属性包含 ( [attribute*="value"] ) 选择器。
  • 属性开头为 ([attribute^="value"] ) 选择器。

您需要以某种方式解析 URL。我省略了这部分,但假设它被放置在一个名为 url 的对象中。

爪哇语

if (elem = document.getElementById('filter-' + url['D'])) {
  // exists
  elem.className += ' selected';
}

jQuery

elem = $('#filter-' + url['D']);
if (elem.length) {
  // exists
  elem.addClass('selected');
}