Javascript OL li编号问题
我有以下顺序列表:Javascript OL li编号问题,javascript,html,css,Javascript,Html,Css,我有以下顺序列表: <ol> <li>First</li> <li>Second</li> <li>Third</li> </ol> 首先 第二 第三 我必须使用“display”属性一次显示一个li。问题是,无论显示哪个li,列表编号都显示1。因此,我看到的不是“2.Second”或“3.Third”,而是“1.Second”、“1.Third”等 visib
<ol>
<li>First</li>
<li>Second</li>
<li>Third</li>
</ol>
首先
第二
第三
我必须使用“display”属性一次显示一个li。问题是,无论显示哪个li,列表编号都显示1。因此,我看到的不是“2.Second”或“3.Third”,而是“1.Second”、“1.Third”等
visibility: hidden;
把它改成
visibility: visible;
当你想展示的时候
jQuery
显示:
$(element).css("visibility","visible");
要隐藏:
$(element).css("visibility","hidden");
我从您的问题
中了解到,我必须一次显示一个li
,您可以使用start
属性从某个索引开始
<ol>
<li>First</li> <!-- 1 -->
<li>Second</li> <!-- 2 -->
<li>Third</li> <!-- 3 -->
</ol>
<ol>
<li>First</li> <!-- 1 (default)-->
</ol>
<ol start="2">
<li>Second</li> <!-- 2 -->
</ol>
<ol start="3">
<li>Third</li> <!-- 3 -->
</ol>
<ol start="50">
<li>Fifty</li>
<li>Fifty One</li>
</ol>
更新:(创建函数)
看着问题(不清楚)和你的小提琴,你似乎希望隐藏的div保留其列表顺序号,并显示其各自的列表编号,而不是从1开始。这在jquery.hide()
和.show()
中是不可能的,因为它们使用的display属性会更改列表的序号。您需要使用可见性
试一试
还有一个css
ol li {
visibility : hidden; /*Or just use jquery to set the css to visibility hidden*/
}
你问的问题非常不清楚。@AnandNalya你想要这个@PSL是的,我想这就是答案——我会投赞成票——你是第一个建议使用可见性的人。坦率地说,如果这个问题措辞得当,这将是一个很好的问题。@PSL是的。我也不认为它是复制品。撤回了我的投票。
function hideLiByIndex(i)
{
$('li').hide();
li = $('li').eq(i);
li.closest('ol').attr('start', i+1).find(li).show();
}
hideLiByIndex(1);
$('li').not(':eq(2)')
.css('height', '0px') //Use this only if you dont want to show the lists that are hidden because visibility takes space in the page flow.
.end().filter(':eq(2)')
.css('visibility', 'visible');
ol li {
visibility : hidden; /*Or just use jquery to set the css to visibility hidden*/
}