li:lt(4)没有得到小于4的所有列表项?

时间:2009-12-01 15:57:02

标签: jquery html jquery-selectors

这是我的HTML:

<ol id="front-page">
<li>
    <img src="images/defaultImage.gif" alt="Default Image" />
    <a href="#" title="Title Entry">Title Entry</a>    </li>
<li>
    <img src="images/defaultImage.gif" alt="Default Image" />
    <a href="#" title="Title Entry">Title Entry</a>
</li>
<li>
    <img src="images/defaultImage.gif" alt="Default Image" />
    <a href="#" title="Title Entry">Title Entry</a>
</li>
<li>
    <img src="images/defaultImage.gif" alt="Default Image" />
    <a href="#" title="Title Entry">Title Entry</a>
</li>
<li>
    <img src="images/defaultImage.gif" alt="Default Image" />
    <a href="#" title="Title Entry">Title Entry</a>
</li>
<li>
    <img src="images/defaultImage.gif" alt="Default Image" />
    <a href="#" title="Title Entry">Title Entry</a>
</li>
<li>
    <img src="images/defaultImage.gif" alt="Default Image" />
    <a href="#" title="Title Entry">Title Entry</a>
</li>
<li>
    <img src="images/defaultImage.gif" alt="Default Image" />
    <a href="#" title="Title Entry">Title Entry</a>
</li>

和我的jQuery:

$(document).ready(function() {
$('ol#front-page').find('li:eq(4)').css("margin","0");
$('ol#front-page').find('li:lt(4)').append("<span>New</span>");

});

我想要做的是让前3个列表项附加一个范围。它会将跨度附加到0元素而不是其他3个元素吗?

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

您的代码会在前4个li元素中的每个元素之后附加跨度。那是你想要做的吗?

答案 1 :(得分:0)

点击此处(http://jsbin.com/upute),了解您的代码实际执行的操作。

这会在第五个margin上将0设置为li(因为列表为零)

$('ol#front-page').find('li:eq(4)').css("margin","0");

这会追加(==最后)前四个li的跨度

$('ol#front-page').find('li:lt(4)').append("<span>New</span>");

你可能想做的就是这个。在第四个元素上将margin设置为0,将 prepend 设置为前四个li的范围。

$('ol#front-page').find('li:lt(4)').prepend("<span>New</span>");

答案 2 :(得分:0)

'li:lt(4)'替换为'li:lt(3)'。 :lt()过滤器适用于从零开始的索引,因此:lt(4)表示元素0,1,2和3.

参考:Selectors/lt @ jQuery API

Pd积。您可能还需要'li:eq(3)'