Javascript 单击特定ul li链接时更改徽标

Javascript 单击特定ul li链接时更改徽标,javascript,jquery,html,Javascript,Jquery,Html,在一个网站上工作,客户希望标题徽标根据单击的类别和子类别链接进行更改 因此,如果用户在凯瑟琳·威尔逊及其子猫(鞋子、服装)上,凯瑟琳·威尔逊的徽标将显示在kwlogo中。当用户使用Miss Wilson及其子猫(鞋、服装)时,Miss Wilson徽标将替换为kwlogo 凯瑟琳·威尔逊 鞋 服装 威尔逊小姐 鞋 服装 这是我一直在使用的代码,但似乎无法使其正常工作 <script type="text/javascript"> $(window).load(funct

在一个网站上工作,客户希望标题徽标根据单击的类别和子类别链接进行更改

因此,如果用户在凯瑟琳·威尔逊及其子猫(鞋子、服装)上,凯瑟琳·威尔逊的徽标将显示在kwlogo中。当用户使用Miss Wilson及其子猫(鞋、服装)时,Miss Wilson徽标将替换为kwlogo

  • 凯瑟琳·威尔逊
    • 服装
  • 威尔逊小姐
    • 服装
这是我一直在使用的代码,但似乎无法使其正常工作

<script type="text/javascript">

$(window).load(function() {
    if ( $('ul.categorymenulevel li a[title="Kathryn Wilson"]').siblings().size() > 0 ) {
        $('#kwlogo').show();
    }
    else if ( $('ul.categorymenulevel li a[title="Miss Wilson"]').siblings().size() > 0 ) {
        $('#kwlogo').css({
            'background-image' : 'url(/user/files/logo_misswilson.jpg)',
            width : '115px',
            height : '63px',
        });
        $('#kwlogo').attr("href", "/category/miss-wilson/2.aspx")
        $('#kwlogo').show();
    }
    else {
        $('#kwlogo').show();
    }
});
</script>

$(窗口)。加载(函数(){
如果($('ul.categorymenulevel li a[title=“Kathryn Wilson”]”)兄弟姐妹().size()>0){
$('#kwlogo').show();
}
else if($('ul.categorymenulevel li a[title=“Miss Wilson”]”)。兄弟姐妹().size()>0){
$('#kwlogo').css({
“背景图像”:“url(/user/files/logo_misswilson.jpg)”,
宽度:“115px”,
高度:'63px',
});
$('#kwlogo').attr(“href”,“/category/miss wilson/2.aspx”)
$('#kwlogo').show();
}
否则{
$('#kwlogo').show();
}
});

任何助手都将不胜感激

您可以找出加载页面的URL,然后找出该页面是否有特定文本

var url = document.URL;
如果
url
有文本“kathryn wilson”,请执行此操作


如果
url
中有文本“miss wilson”,请执行此操作。

抱歉,此代码确实没有意义。。。我现在正试图清理一下,但有点失去了重点

  • 你的标志在哪里?根据Css,它是一个div,但您可以为其分配href
  • 你在li的意思中有一个href,当你点击它时,页面将被加载,那么当你实际打开一个新页面时,你希望如何显示一个新的徽标
  • 如果每个链接都有静态页面,那么在每个静态页面中只包含正确的图像
  • 如果您想要动态页面,而不是重新加载整个页面,则不应使用href,或者如果确实使用a href,则应使用不健康的iframe指定目标。 所以在我帮你之前,你需要先弄清楚你想要什么
好的,我尽了最大的努力来澄清它,并给它一些意义,也试图提出相关的意见,但仍有工作要做,我正试图为你指出正确的方向

$("#leftmenu").on("click","a",function(e){
    // will prevent page load for now.
    e.preventDefault();
    //Instead will load the content into our div called container.
    $("#container").load($(this).attr('href'));

    if ($(this).parent().parent().attr('id')=='cul0')
    {
        $('#kwlogo').css('background-image' , 'url(/user/files/kathryn-wilson.jpg)');           
        $('#kwlogo').attr("href", "/category/miss-wilson/2.aspx")

    }
    else if ($(this).parent().parent().attr('id')=='cul2')
    {
        $('#kwlogo').css('background-image' , 'url(/user/files/logo_misswilson.jpg)');           
        $('#kwlogo').attr("href", "/category/miss-wilson/2.aspx")
    }
});

请查看更新的fiddle以了解所有更改。

您是否考虑过使用PHP并检查您所处特定页面的
$\u GET[]
?您可以提供一些html代码或创建JSFIDLE吗?@bryan抱歉,您可以发布一个示例吗?谢谢你的帮助reply@user3303786我得看看代码。你在用wordpress吗?这是你自己的剧本吗?链接看起来像什么?这个问题有点让人困惑。你能试着重新措辞吗?你说的“如果用户打开了”到底是什么意思?你是说他将鼠标悬停在菜单上,还是单击菜单?如果这是一份菜单的话。对不起,这整件事都很新鲜,所以我可能会遗漏一些东西。我已经把商标出现的div也包括进来了,这不是问题,只是我真的很难帮助你,因为情况还不清楚。你想用UL和LI建立一个菜单,这是清楚的,每个菜单元素都有一个链接,这或多或少是清楚的。当用户单击LI元素时,您希望显示徽标,当然也希望加载页面。你是在加载页面,还是将其加载到div容器或iframe中?大家好,谢谢你们的回复,但我从我们的开发人员那里得到了一些帮助,并使其正常工作。大家继续努力吧@用户3303786那么你为什么不发布解决方案并接受它作为答案呢?这样,这个问题就不会保留在未回答的队列中,因此以后可能有相同问题的其他人可以看到您如何解决它。