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没有改变.为什么?
也许 它一定要是:
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)