1
<span>This is the span I want to select</span>
<div>something here</div>
<a id="start"></a>

假设只能访问$('#start'),

我试过 $('#start').prev('span') 但没有工作。

4

2 回答 2

4
 $('#start')
    .parent()       // gets one up
    .find('span')   // gets the span element

使用jsbin沙箱的相同代码


笔记:

你不能使用 prev() 因为它只获取前一个标签,并且跨度,从锚标签不是前一个是前一个

来自jQuery 文档

获取一组元素,其中包含每个匹配的元素集的唯一先前兄弟。使用可选表达式过滤匹配集。仅返回前一个兄弟姐妹,而不是所有先前的兄弟姐妹。

prev([filter])

过滤器是过滤前一个标签是否包含多个标签,例如:

<div>
   <span></span>
   <a></a>
</div>
<a id="a2"></a>

获得您使用的跨度:

$('#a2').prev('span')
于 2009-09-22T06:50:57.210 回答
0

奇怪的是,这似乎prevAll是倒退的,从起始元素后面的第一个开始,然后往回走。有道理,我想。无论哪种方式,以下对我有用:

//jquery :

$(document).ready(function(){
    $("#start").prevAll("span:first").css("font-weight", "bold");
  });

// html: 


<span>This is the span I don't want to select</span>
<span>This is the span I want to select</span>
<div>something here</div>
<a id="start">Stuff</a>
于 2009-09-22T07:05:18.943 回答