我使用以下CSS代码隐藏元素。
#DeltaPlaceHolderLeftNavBar div>div>ul>li>ul
{
display:none;
}
现在我正在尝试使用以下jquery代码使其可见,但它无效。
$('#DeltaPlaceHolderLeftNavBar div>div>ul>li>ul').style.display = 'block';
如何让它发挥作用?
答案 0 :(得分:2)
您需要使用.css()
$('#DeltaPlaceHolderLeftNavBar div>div>ul>li>ul').css('display', 'block')
答案 1 :(得分:1)
执行此操作的'官方'jQuery方法是使用jQuery为此提供的功能
$('#DeltaPlaceHolderLeftNavBar div>div>ul>li>ul').show();
请注意,这仅适用于display:none
是内联而非CSS中的内容,因为未添加明确的display:block
声明。
因此,如果您想明确设置CSS操作,您可能还希望使用
$('#DeltaPlaceHolderLeftNavBar div>div>ul>li>ul').css('display', 'block')
甚至可以获得纯元素并更改纯元素的样式
$('#DeltaPlaceHolderLeftNavBar div>div>ul>li>ul').get(0).style.display = "block";
最后,根本不更改css属性是一个非常好的主意,但删除并添加类,例如拥有类.activated
,并在隐藏元素时将其删除(其中display:block
为仅设置为激活状态)
$('#DeltaPlaceHolderLeftNavBar div>div>ul>li>ul').removeClass('activated')
这个的一个非常重要的优点是你只改变了DOM的状态,CSS处理它应该响应的方式,而不是将CSS和javascript混合在一起。
答案 2 :(得分:0)
最佳解决方案是使用这种方式:
$('#DeltaPlaceHolderLeftNavBar div li > ul').show();
.show()
会将样式添加到display:block;
。
答案 3 :(得分:0)
尝试$('#DeltaPlaceHolderLeftNavBar div>div>ul>li>ul').css('display', 'block')
<强>更新强>
$('#DeltaPlaceHolderLeftNavBar div>div>ul>li>ul').show()
可能无效,因为有difference between them。所以$('#DeltaPlaceHolderLeftNavBar div>div>ul>li>ul').css('display', 'block')
是要走的路。
答案 4 :(得分:0)
你可以使用
$('#DeltaPlaceHolderLeftNavBar div>div>ul>li>ul').prop('display', 'block');
或
$('#DeltaPlaceHolderLeftNavBar div>div>ul>li>ul').show();