我试图让顶部列表以数字形式显示可见列表项。
要做到这一点,我试图说......继续&#34;继续&#34;单击,找到可见列表项并将其包装在<li></li>
。
$('.btn-submit-val').on('click', function() {
$('.error-menu a > label:visible').wrap('<li></li>');
$('.error-menu a > label:hidden').unwrap('<li></li>');
});
所以如果你有这样的清单:
<ol class="error-message-container error-menu">
<a href="#firstName"><label class="error" for="firstName" generated="true" style="display:none;"></label></a>
<a href="#lastName"><label class="error" for="lastName" generated="true"></label></a>
</ol>
然后页面会显示:
1. [last name error]
WON&#39; T显示:
1.
2. [last name error]
所以基本上,如果错误不存在,它就不会在页面上显示,也不会出现在数字列表顺序中。
如果您当前在页面上验证字段,则该数字仍会显示在其旁边。我希望删除数字并保留数字顺序。这可能吗?
答案 0 :(得分:0)
你的问题源于此:
$('.error-menu a > label:hidden').unwrap('<li></li>');
元素未被打开的地方。这在某种程度上可能更好,因为您希望保留商品的订单。
如果在验证表单字段后隐藏整个元素,则可以轻松解决问题。
现在为什么你的元素没有被解开,我建议你阅读the difference between visibility:hidden and display:none,因为你使用display:none隐藏你的元素但是检查可见性:hidden。
我建议将<li></li>
添加到您的标记中,并以更改标签可见性的方式更改其可见性。这样就不需要包装/解包元素了。相反,您可以只使用2个css类:.hide{display:none}.show{display:block;}
并通过您已在代码的一部分中使用的.addClass()/.removeClass()
添加它们。
我希望这会有所帮助。