javascript - 如何获取元素先前选定的状态?

标签 javascript html

function changecolor(event) {
  document.querySelector(".selected").classList.remove("selected");
  event.classList.add("selected");
}
.btn-default.selected {
  background: #2f9734;
}
<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
  <div class="container">
    <div class=" btn btn-default selected" data-spid="2bhk" onclick="changecolor(this)">Default 1</div>
    <div class="btn btn-default" data-spid="3bhk" onclick="changecolor(this)">Default 2</div>
    <div class="btn btn-default" data-spid="4bhk" onclick="changecolor(this)">Default 3</div>
    <div class="btn btn-default" data-spid="5bhk" onclick="changecolor(this)">Default 4</div>
    <div class="btn btn-default" data-spid="6bhk" onclick="changecolor(this)">Default 5</div>
  </div>
</body>
</html>

此代码是一个原型(prototype)。

我无法更改 changecolor 函数,而且新的 HTML 更改可以通过 JavaScript 完成。现在我怎样才能获得之前选择的状态。实际上我想要之前选择的按钮的data-spid

最佳答案

function changecolor(event)
{
document.querySelector(".selected").classList.remove("selected");
event.classList.add("selected");
}

var spids = ['2bhk'];

$(document).ready(function() {
    
    $(".btn").click(function(element) {
        spids.push($(".selected").attr('data-spid'));
        
        if(spids.length-2>=0){
        console.log('previously selected: ' + spids[spids.length - 2]);
        }
    });
});
.btn-default.selected
{
background:#2f9734;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">

<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>

<body>

  <div class="container">

    <div  class=" btn btn-default selected" data-spid="2bhk" onclick="changecolor(this)">Default 1</div>
    <div  class="btn btn-default" data-spid="3bhk" onclick="changecolor(this)">Default 2</div>
    <div  class="btn btn-default" data-spid="4bhk" onclick="changecolor(this)">Default 3</div>
    <div  class="btn btn-default" data-spid="5bhk" onclick="changecolor(this)">Default 4</div>
    <div  class="btn btn-default" data-spid="6bhk" onclick="changecolor(this)">Default 5</div>

  </div>

</body>

</html>

关于javascript - 如何获取元素先前选定的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51386079/

相关文章:

javascript - 添加计时器以在将产品添加到购物车后关闭 Ajax Quick Cart (Shopify)?

javascript - 数据表只更新行而不重新加载表

html - 导航菜单最后一项在调整大小时出现和消失

html - 使用什么 HTML 标签来描述图像?

javascript - stepUp 方法逐步增加值,而不是 1

javascript - 如何使 HTML 表单下拉列表中的选定选项之一添加文本输入?

javascript - "Maximum call stack size exceeded"在处理 JS 时实现 Fractal plant 错误

javascript - 谷歌图表没有循环打印

html - 将 div 水平居中对齐

Javascript计算函数不计算