如果在Jquery中没有工作?

nec*_*tar -12 jquery if-statement

这是我的Jquery代码:

<script>
            $('.smenu li').hover(function() {       
                var lid = $(this).find('li').attr('id'); 
                closeAll(); 
               //show perticular div
                if(lid == "d1")
                    {
                        $('.hbg div#info1').show();
                    }
                else if(lid == "d2")
                    {
                        $('div#info2').show();
                    }
                else if(lid == "d3")
                    {
                        $('div#info3').show();
                    }
            });   

            function closeAll()   
            {   
                $('div#info1').hide();
                $('div#info2').hide();
                $('div#info3').hide();

            } 
          </script>
Run Code Online (Sandbox Code Playgroud)

在这里我的信息div-s:

<div class="hbg">
            <div class="solu_info" id="info1">
              //display information
             </div>
            <div class="solu_info" id="info2">
              //display information
             </div>
.....
</div>  

<div class="smenu">
                <ul>
                  <li id="d1"><a href="#"><img src="images/menu_hosp.jpg" border="0"></a></li>
....
Run Code Online (Sandbox Code Playgroud)

在div标签上的onmouse没有改变.为什么?

Red*_*lab 8

if else语句只是javascript,与jquery无关.它总是有效的.如果它没有你期望它在你的代码逻辑中做某事是错误的.


Fel*_*ing 5

也许 它一定要是:

var lid = $(this).attr('id');
Run Code Online (Sandbox Code Playgroud)

只是alert(lid)并检查它是否包含一个值(很可能不在您的代码中).


您当前的代码获取id一个的li内部元素li的元素.


显然,if-else如果您的代码是正确的,将会有效.请记住,由于语言有错误,你更有可能做错了;)


说真的,在发布很多问题之前,你应该阅读一些教程和文档.然后你会知道find()正在做什么以及$('.smenu li')选择哪些元素.

更新:

好的,只为你:

这是你的HTML

<div class="smenu">
    <ul>
      <li id="d1">...</li>   // #1
      <li id="d2">...</li>   // #1
    </ul>
Run Code Online (Sandbox Code Playgroud)

选择器$('.smenu')将选择<li>我标记的所有元素#1.

当你申请.find('li')这样一个元素时,它会尝试在li元素中找到一个li元素,即它会选择我在#2这里标记的元素:

<div class="smenu">
    <ul>
      <li id="d1">  // #1
          <ul>
            <li id="foo">...</li>  // #2
          </ul>
      <li id="d2">...</li>   // #1
    </ul>
Run Code Online (Sandbox Code Playgroud)

但这不是你的结构.您没有嵌套列表.你想要#1元素中的ID ,因此它必须是

var lid = $(this).attr('id');
Run Code Online (Sandbox Code Playgroud)