2017-04-19 85 views
-2
<div> 
<span>A</span> 
<span>B</span> 
<span>C</span> 
<span>D</span> 
</div> 

如果用户点击跨度,我需要在该跨度上应用样式(文本颜色)以及该div内的所有前面跨度。还要删除之前点击的跨度做法。跨度没有类和id。如何获得div内的点击跨度并使用JQuery修改前面的跨度和后续跨度?

我怎样才能实现这个使用J查询?

+2

使用'和'.prev()'和'的.next()' – guradio

+0

这+ .siblings()this'方面 –

+1

预计你至少尝试自己编码。堆栈溢出不是代码写入服务。我建议你做一些[**额外的研究**](http://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-expected-of-stack-overflow-users) ,无论是通过谷歌或通过搜索,尝试和。如果您仍然遇到麻烦,请返回**您的代码**并解释您所尝试的内容。 –

回答

1

要选择所有以前的单击元素的同胞元素,您可以使用prevAll(),但也包括您需要添加的单击元素andSelf()。此外,您首先需要从每次点击span时删除所有span的背景。

$('div span').click(function() { 
 
    $('div span').css('background', 'none'); 
 
    $(this).prevAll().andSelf().css('background', 'red') 
 
})
body { 
 
    padding-top: 10px; 
 
} 
 
span { 
 
    cursor: pointer; 
 
    padding: 10px; 
 
    border: 1px solid black; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <span>A</span> 
 
    <span>B</span> 
 
    <span>C</span> 
 
    <span>D</span> 
 
</div>

+0

哇,你总是学到一些新的,伟大的和简单的方法来解决这个问题。感谢分享。 – ProgrammerV5

+0

@ ProgrammerV5不客气。 –

0

检查this小提琴代码帮助。

JS:

$('span').click(function(){ 
    $(this).siblings().css('color','') 
    $(this).css('color','red'); 
    $(this).prevAll().css("color", "red"); 
});