1

我有一个包含在 div 标签内的项目列表

<div id="contentleft">
<ul>
<li><a href="http://www.google.com">Google<a/></li> //1
<li><a href="http://www.cnn.com">CNN<a/></li> //2
<li><a href="http://www.ign.com">IGN<a/></li> //3
<li><a href="http://www.bing.com">Bing<a/></li> //4
</ul>

我需要定位#2: 并使用, 和.<li>将其左边距更改为 30px 。我该怎么做?我想要一个解释,所以我会知道我在做什么,而不仅仅是得到一个答案。:eq() filtercss()

这是我尝试过的:

$("#contentleft ul").eq(0).filter("li").css("margin-left:30");
4

2 回答 2

6

你非常接近,有几个问题:

1)我不知道这是否是复制粘贴问题,但您的锚标签不正确:

<a href="http://www.google.com">Google<a/>

应该

<a href="http://www.google.com">Google</a>  // <-- slash before the "a"

2).eq()需要继续您要索引的元素,在这种情况下是li. eq()也是从 0 开始的,所以第二个元素是eq(1). .eq()可与:eq()内部选择器互换:

$("#contentleft ul li:eq(1)")或者$("#contentleft ul li").eq(1)

3).css()采用 2 个参数、样式/值或一个对象:

$("#contentleft ul li:eq(1)").css("margin-left", "30px");

或者

$("#contentleft ul li:eq(1)").css({
    "margin-left": "30px",
    "background-color": "purple"
});

演示:http: //jsfiddle.net/gLKMj/

于 2013-02-22T19:38:45.940 回答
2

首先,您几乎可以在 jquery .eq() 页面上找到答案:http: //api.jquery.com/eq/

但如果您无法访问互联网:

// select the 2nd li element (zero based array so 1 is 2nd)
// change the margin-left to 30px
$('li').eq(1).css('margin-left', '30px');
于 2013-02-22T19:28:58.400 回答