The*_*Kid 0 jquery if-statement html-lists
如果UL具有奇数个LI记录,我想<br />在第一个LI之后添加BREAK标记().
如果LI的数量为偶数,则结果为:
<ul id="cat">
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
如果LI的数量是ODD,则结果如下:
<ul id="cat">
<li><a href=""></a></li><br />
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我的jQuery片段:
$("#cat").each(function() {
var elem = $(this);
if (elem.children("li").length % 2 != 0) {
elem.prepend("<br />");
}
});
Run Code Online (Sandbox Code Playgroud)
它只会导致
<ul id="cat">
<br />
<li><a href=""></a></li>
<li><a href=""></a></li>
<li><a href=""></a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
你做错了是你在UL之前.这将
在所有LI之前添加一个.如果您获得第一个LI,那么您after()将在LI之后添加BR.这也是无效的HTML.所以请为此使用CSS.
如果您仍想以这种方式使用Javascript:
$("#cat").each(function() {
var elem = $(this);
if (elem.children("li").length % 2 != 0) {
elem.children("li").first().after("<br />");
}
});
Run Code Online (Sandbox Code Playgroud)
但是为什么一个BR之后的LI?你不能用CSS解决这个问题吗?
li {
display: block;
}
Run Code Online (Sandbox Code Playgroud)