Javascript 如何仅向ul列表的一个元素添加样式
我需要根据字符串是否与url匹配,只向列表的一个元素添加其他样式 此时,正在从列表和url中的一个元素中标识一个唯一的字符串,然后比较这两个字符串并根据字符串是否相等添加样式,但这样做是将样式应用于列表中的所有元素 结果应该只将样式添加到与url中的字符串匹配的元素中 var currentUrl=window.location.href.split'/'[5]; var categoryName=$'。_filter-list-categoria._filter-list-item li._anchor'; var categoryArray=[]; $categoryName.eachfunction{ categoryArray.push$this.text }; 对于x=0;xJavascript 如何仅向ul列表的一个元素添加样式,javascript,jquery,Javascript,Jquery,我需要根据字符串是否与url匹配,只向列表的一个元素添加其他样式 此时,正在从列表和url中的一个元素中标识一个唯一的字符串,然后比较这两个字符串并根据字符串是否相等添加样式,但这样做是将样式应用于列表中的所有元素 结果应该只将样式添加到与url中的字符串匹配的元素中 var currentUrl=window.location.href.split'/'[5]; var categoryName=$'。_filter-list-categoria._filter-list-item li._a
let testurl = '/t/cervezas/nacionales';
$('li').each(function(index,item){
let href = $(item).find('a').attr('href');
if(href == testurl){
$(item).css('border', '1px solid green');
}
})
设testurl='/t/cervezas/nacionales';
$'li'。每个函数索引,项{
let href=$item.find'a'.attr'href';
ifhref==testurl{
$item.css'边框','1px纯绿色';
}
}
为了解释问题的原因,您的问题在于这一行: $categoryName.css'background','red'
这是将背景红色应用于与categoryName选择器匹配的每个元素,这是所有锚定标记。您当前没有唯一标识不同url的类,请参阅,以了解如何循环li元素并将样式应用于正确的元素currentUrl值是什么?@GrafiCodeStudio currentUrl是浏览器中的url,它拆分并获取索引的第五个元素,用于匹配列表中的元素,例如,如果url是,它将被“/”拆分,并使用第五个元素,在本例中,“nacionales”@Rezpo将非常脆弱,您可能应该使用substring和lastIndexOf,currentUrl=window.location.pathname.substringwindow.location.pathname.lastIndexOf“/”+1;