我想要的是当我点击演示按钮时,它会在绿色(选定)方格内用数字提醒我。
$('#demo').click(function() {
var x = document.getElementsByClassName('selected');
var numb = x[0].innerHTML;
alert(numb);
});
问题是目前我总是得到“1”作为结果,这不是预期的......
感谢您的帮助!
答案 0 :(得分:3)
您需要访问最后一个元素而不是访问第一个元素。还默认将选定的类添加到第一个元素:
$('#button').click(function() {
var numb = $('.selected:last').text();
alert(numb);
});
<强> Working Demo 强>
答案 1 :(得分:0)
这是因为当您向向上滚动时,您只是删除类selected
,否则会保留该类。
使用JavaScript控制台时
document.getElementsByClassName('selected');
[<li class="post selected">1</li>,
<li class="post selected">2</li>,
<li class="post selected">3</li>,
<li class="post selected">4</li>,
<li class="post selected">5</li>]
当添加新类时,您需要修复逻辑以删除所有其他selected
类。
或者您可以使用x.length - 1
var x = document.getElementsByClassName('selected');
var numb = x[x.length - 1].innerHTML;
答案 2 :(得分:0)
滚动时,向离开视口的每个.selected
添加一个类li
。因此,当您执行document.getElementsByClassName('selected')
时,您将获得一组DOM对象,您始终可以访问第一个。而是访问最后:
var x= document.getElementsByClassName('selected');
var numb = x[x.length-1].innerHTML;