我想隐藏一个div中的所有子元素。然后根据传递给函数的特定元素来显示其中一个。
function subDisplay(name) {
$("#navSub").each(function() {
$(this).hide();
});
$(name).show();
}
然后我像这样从一个onmouse事件调用该函数:subDisplay(#DivIwantToShow);
但是没有显示任何内容...
我做错了什么?
我想隐藏一个div中的所有子元素。然后根据传递给函数的特定元素来显示其中一个。
function subDisplay(name) {
$("#navSub").each(function() {
$(this).hide();
});
$(name).show();
}
然后我像这样从一个onmouse事件调用该函数:subDisplay(#DivIwantToShow);
但是没有显示任何内容...
我做错了什么?
你需要隐藏子元素而不是包含它们的 div。
$("#navSub").children().hide();
所以现在,如果你想要显示的 div 是父 div 中的一个元素,则该元素仍然会显示,而其他元素则保持隐藏。
#navSub
的子元素进行操作,你需要选中并隐藏它们,而不是选择 navSub
元素本身;你可以使用 children()
方法来实现。function subDisplay(name) {
$('#navSub').children().hide();
$(name).show();
};
subDisplay('#DivIwantToShow');
如果传递了元素的名称,请使用以下内容:
if($(this).attr('name') != name){
//Hide it
} else {
//show it
}
function subDisplay(name) {
$("#navSub").hide();
$('#'+name).show();
}
总结一下@dotweb和@Matt的精彩评论:
function subDisplay(name) {
$('#navSub').hide();
$(name).show();
}
subDisplay('#DivIwantToShow');
function subDisplay(name) {
$("#navSub").hide();
$(name).show();
}
<div class="parent_div">
<div class="child_div">1st div</div>
<div class="child_div">2nd div</div>
</div>
$(document).ready(function(){
$(".parent_div").on('click',function(){
$j(this).find("div").toggle();
})
})
name
参数中传递的是什么?是一个 jQuery 对象还是选择器?另外,从你的代码中可以看出你有多个#navSub
,这是非法的 HTML - 页面中只能有一个唯一的 ID - 应该使用类代替。 - BojanglessubDisplay(#DivIwantToShow);
吗? - J. HolmessubDisplay('#DivIwantToShow');
-- 这是一个你需要传递的字符串。 - js-coder$('#navSub').hide()
来优化你的代码,而不是使用each()
进行迭代。 - MattsubDisplay(#DivIWantToShow)
还是在使用subDisplay("#DivIWantToShow")
?另外,如果在 subDisplay 中,你使用console.log(name)
会发生什么? - Wing