gpt4 book ai didi

基于 url 的 .addClass 的 jQuery/wordpress 问题

转载 作者:行者123 更新时间:2023-12-01 05:10:01 27 4
gpt4 key购买 nike

我在向主题上的 2 个导航链接添加类时遇到一些问题。

当我将页面重定向到另一个页面时,我需要添加一个基于 url 字符串的类。

我使用以下代码:

<script type="text/javascript">
if (window.location.pathname.indexOf('/category/blog/')){
if ( $('#nav ul li a span').text().contains('BLOG') ){
//add class 'current_page_item' to:
$('#nav ul li').addClass('current_page_item');
}
}
if (window.location.pathname.indexOf('/category/keepers/')){
if ( $('#nav ul li a span').text().contains('KEEPERS') ){
//add class 'current_page_item' to:
$('#nav ul li').addClass('current_page_item');
}
}
</script>

有人能明白为什么这不起作用吗?

我收到以下错误:

$ is not a function
[Break on this error] if ( $('#nav ul li a span').text().contains('BLOG') ){

最佳答案

$("#nav ul li a span").text() 返回一个字符串,而不是 jQuery 对象。您不能在字符串上调用 contains,这就是问题所在。有关 text() 函数的信息 here .

我认为你需要重组你的逻辑方式,$("#nav ul li a span").text() 返回以下字符串:主页博客生物关于Keepers因此,您的包含逻辑将在您网站的每个页面上评估为 true。

我认为更好的方法是循环遍历 li 元素,获取单个 li 范围内的文本,然后在为 true 时设置该单个 li 的 css。

HTH

编辑:这有效(我在你的网站上在 firebug 中尝试过):

jQuery('#nav ul li').each(function(){
//The comparison is case sensitive, Dont use uppercase like in your original
if(jQuery(this).find('span').text() == "Blog"){
jQuery(this).addClass('current_page_item');
}
});

关于基于 url 的 .addClass 的 jQuery/wordpress 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2690486/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com