我可以在广场内获得号码吗?

时间:2015-05-27 16:38:17

标签: javascript

我想要的是当我点击演示按钮时,它会在绿色(选定)方格内用数字提醒我。

$('#demo').click(function() {
var x = document.getElementsByClassName('selected');
var numb = x[0].innerHTML;
alert(numb);
});

问题是目前我总是得到“1”作为结果,这不是预期的......

感谢您的帮助!

3 个答案:

答案 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;

http://jsfiddle.net/f3wqznek/1/

答案 2 :(得分:0)

你得到了你要求的东西。

滚动时,向离开视口的每个.selected添加一个类li。因此,当您执行document.getElementsByClassName('selected')时,您将获得一组DOM对象,您始终可以访问第一个。而是访问最后

var x= document.getElementsByClassName('selected');
var numb = x[x.length-1].innerHTML;