我有一个项目列表,我希望用户最多可以选择三个项目。 我有下面的代码。从javascript中的列表中选择最多x个项目数
var listItems = document.querySelectorAll('li');
var clickcnt = 0;
for(var i = 0; i < listItems.length; i++){
listItems[i].addEventListener('click', function(event) {
if(this.hasAttribute('class')){
var test = document.getElementsByClassName('clicked');
this.classList.remove('clicked');
clickcnt--;
}
else if(clickcnt < 3) {
this.classList.add('clicked');
clickcnt++;
}
console.log(clickcnt);
});
}
.clicked {
background-color:red;
}
<p>select up to 3 of your favourite items below.</p>
<ul id="mylist">
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
</ul>
我遇到的问题是,我检查,看看是否有项一类,如果这样,我减少了点击次数。但它不断减去项目,所以如果我连续4次点击项目1,我就可以选择其他四项。
我该如何设置它,以便用户可以继续点击一个项目,直到他们有最多3个被选中,但如果他们点击同一个项目两次,它将删除该项目以使其处于初始状态?
你可以使用jQuery?这会更简单 – Balder 2014-09-29 12:34:23
在第6行中,你声明了变量'test',然后从不使用它。 – olleicua 2014-09-29 12:56:09