【发布时间】:2017-12-20 00:03:48
【问题描述】:
我正在做一个简单的例子,如果用户点击元素,那么它上面的所有元素都应该有一个类,而它下面的所有元素都不应该有任何应用到它们的类。
这是我的代码:
<script>
function test(object) {
var pid = object.id;
var id = parseInt(pid.split("")[1]);
console.log(id);
for (var i = 1; i <= id; i++) {
var element = document.getElementById("p"+i);
console.log(element);
element.className = "active";
}
console.log(id+1);
for(var i = id+1; i <= 4; i++) {
var element = document.getElementById("p"+i);
element.className.replace(new RegExp('(?:^|\\s)'+ 'active' + '(?:\\s|$)'), ' ');
console.log(element);
}
}
</script>
<div id="divid">
<p id="p1" onclick="test(this)">one</p>
<p id="p2" onclick="test(this)">two</p>
<p id="p3" onclick="test(this)">three</p>
<p id="p4" onclick="test(this)">four</p>
</div>
所以在这里,如果我点击三,那么一、二、三的元素应该有活动的类,而元素四不应该有任何类。这工作正常。
现在如果我点击一个,我希望二、三、四应该有任何 css 类,但它不是那样工作的。
你能帮我解决问题吗?我想使用纯 Javascript。
【问题讨论】:
-
如果,,
p2出现在p3之后怎么办? -
@KoushikChatterjee,好问题。目前我的身份证只在增加。还需要检查这种情况。
-
hmmm,也为这种情况提供了一个简单的解决方案,请检查我的新答案。
标签: javascript html css