在dropdwon菜单中发出针对特定选择器jquery的问题

Issue targeting specific selector jquery in dropdwon menu

本文关键字:选择器 jquery 问题 菜单 dropdwon      更新时间:2023-09-26

我有一个带有jquery的下拉菜单,我想根据下拉菜单中选择的内容以不同的方式修改一些文本。

下拉菜单有效。

Html代码:

<div>
<ul class="myMenu">
    <li><a href="#">Choose your location</a>
        <ul>
            <li id="op1"><a href="#Co">option1</a></li>
            <li id="op2"><a href="#Nk">option2</a></li>
            <li id="op2"><a href="#So">option3</a></li>
        </ul>
    </li>
</ul>
</div>
<div>
<h1 id="text_to_change">Welcome to blabla</h1>
</div>  

Javascript代码:

$(document).ready(function() {
$('.myMenu li ul li').click( function(event){
    $(document).find('#text_to_change').css('visibility', 'visible');
    $('.myMenu').hide();
    if ($(this) == '#op1'){
        $('#text_to_change').text("text changed");
    }
    if ($(this) == '#op2'){
        $('#text_to_change').text("text changed differently");
    }
    else{
        $('#text_to_change').text("text changed differently again");
    }
});
});         

为什么($(this) == '#op1')不起作用?

您正在尝试将jquery对象$(this)与字符串#op1 进行比较

要获取元素的id,请使用:

$(this).attr('id');

它将为您提供没有# 的元素的id

此外,我认为你的第二个如果需要是else if { ...

$(document).ready(function() {
$('.myMenu li ul li').click( function(event){
    
    console.log($(this).attr('id'), $(this).prop('id'));
    $(document).find('#text_to_change').css('visibility', 'visible');
    $('.myMenu').hide();
    if ($(this).attr('id') == 'op1'){
        $('#text_to_change').text("text changed");
    }
    else if ($(this).attr('id') == 'op2'){
        $('#text_to_change').text("text changed differently");
    }
    else{
        $('#text_to_change').text("text changed differently again");
    }
});
});  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div>
<ul class="myMenu">
    <li><a href="#">Choose your location</a>
        <ul>
            <li id="op1"><a href="#Co">option1</a></li>
            <li id="op2"><a href="#Nk">option2</a></li>
            <li id="op2"><a href="#So">option3</a></li>
        </ul>
    </li>
</ul>
</div>
<div>
<h1 id="text_to_change">Welcome to blabla</h1>
</div>

这两个项目不能共享相同的id"op2"

<li id="op2"><a href="#Nk">option2</a></li>
<li id="op2"><a href="#So">option3</a></li>