<div>
<span>A</span>
<span>B</span>
<span>C</span>
<span>D</span>
</div>
如果用户点击跨度,我需要在该跨度上应用样式(文本颜色)以及该div内的所有前面跨度。还要删除之前点击的跨度做法。跨度没有类和id。如何获得div内的点击跨度并使用JQuery修改前面的跨度和后续跨度?
我怎样才能实现这个使用J查询?
<div>
<span>A</span>
<span>B</span>
<span>C</span>
<span>D</span>
</div>
如果用户点击跨度,我需要在该跨度上应用样式(文本颜色)以及该div内的所有前面跨度。还要删除之前点击的跨度做法。跨度没有类和id。如何获得div内的点击跨度并使用JQuery修改前面的跨度和后续跨度?
我怎样才能实现这个使用J查询?
要选择所有以前的单击元素的同胞元素,您可以使用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>
哇,你总是学到一些新的,伟大的和简单的方法来解决这个问题。感谢分享。 – ProgrammerV5
@ ProgrammerV5不客气。 –
检查this小提琴代码帮助。
JS:
$('span').click(function(){
$(this).siblings().css('color','')
$(this).css('color','red');
$(this).prevAll().css("color", "red");
});
使用'和'.prev()'和'的.next()' – guradio
这+ .siblings()this'方面 –
预计你至少尝试自己编码。堆栈溢出不是代码写入服务。我建议你做一些[**额外的研究**](http://meta.stackoverflow.com/questions/261592/how-much-research-effort-is-expected-of-stack-overflow-users) ,无论是通过谷歌或通过搜索,尝试和。如果您仍然遇到麻烦,请返回**您的代码**并解释您所尝试的内容。 –