html 显示按钮的单击顺序

bxfogqkk  于 2023-03-27  发布在  其他
关注(0)|答案(4)|浏览(209)

我试图显示按钮被点击的顺序

<button id="one" class="name">Hello</button>
<button id="two" class="name">Hello1</button>
<button id="three" class="name">Hello2</button>
<button id="four" class="name">Hello3</button>
<button id="five" class="name">Hello4</button>

如果我第一次点击任何一个按钮,比如说第三个id=“three”的按钮,然后它应该显示“1”在按钮的顶部。如果我再次单击它,它应该说1和2,然后如果我单击另一个按钮,那么该按钮应该说3,因为它是在第3个位置单击。所以整个事情是我试图显示他们被点击的位置,如果他们被点击多次,然后显示他们被点击的数字,并加入数字与“&". PS:我是jquery/javascript的新手,所以我不知道从哪里开始得到想要的结果。

4szc88ey

4szc88ey1#

下面是纯Javascript的代码。不需要额外的库。您可以在下面的片段上运行并尝试它。步骤可以在这里描述:
1.设置计数器变量并将其赋值为0
1.获取所有按钮元素。

  • 对于每个按钮,添加事件侦听器以及计数文本和计数器的机制:
  • 如果按钮还没有被点击,则添加clicked =和计数器的当前状态。
  • 否则,只需添加与号&和当前计数器状态。
var click = 0;
var buttons = document.querySelectorAll('button.name');
buttons.forEach(button => {
  button.addEventListener('click', function(){
    var current = button.innerText;
    var existingClicks = current.split(" ");
    if(existingClicks.length > 1) {
      button.innerText += ` & ${++click}`;
    }
    else {
      button.innerText = `clicked = ${++click}`;
    }
  });
});
<button id="one" class="name">Hello</button>
<button id="two" class="name">Hello1</button>
<button id="three" class="name">Hello2</button>
<button id="four" class="name">Hello3</button>
<button id="five" class="name">Hello4</button>

如果你想添加reset按钮,你可以将它封装在一个div上,并保存它的早期状态:
一个一个二个一个一个一个三个一个一个一个一个一个四个一个
请记住,您需要将上面的部分封装到一个函数中,并在“重新初始化”容器中的按钮操作后运行。

mkh04yzy

mkh04yzy2#

$(function() {
 var click = 0;
$("button.name").click(function(){
  var current = $(this).text();
  var existingClicks = current.split(" ");
  if(existingClicks.length > 1) {
    $(this).text(current+" &"+(++click))
  }
  else {
    $(this).text("clicked = "+(++click))
  }
})
});

我认为这段代码将做你想做的事情,而不需要在HTML端做太多的编辑。但我建议你为元素使用更好的类名。

emeijp43

emeijp433#

我不明白你为什么要用“&”来分隔数字,但这很容易。

var btn1Clicks = 0;
var btn2Clicks = 0;
var btn3Clicks = 0;

var btn1 = document.getElementById('one');
var btn2 = document.getElementById('two');
var btn3 = document.getElementById('three');

btn1.addEventListener('click',btnClick);
btn2.addEventListener('click',btnClick);
btn3.addEventListener('click',btnClick);

function btnClick(e){
  let btnclk = 0;
  if (e.target == btn1 || e.target.parentNode == btn1){
    btnclk = btn1Clicks + 1;
    btn1Clicks ++;
  }
  else if(e.target == btn2 || e.target.parentNode == btn2) {
    btnclk = btn2Clicks + 1;
    btn2Clicks ++;
  }
  else{
    btnclk = btn3Clicks + 1;
    btn3Clicks ++;
  }
    
  let s = e.target.getElementsByTagName('div')[0] || e.target;
  
  let str = s.innerText;
  if (str === '' && btnclk == 1){
    str = '1'
  }else{
    str += `&${btnclk}`;
  }
  
  s.innerText = str;
}
.name{
  position: relative;
  padding: 20px;
  background: #1122a9;
  color: white;
  width: 160px;
  margin: 15px;
}

.txt{
  position: absolute;
  top: 0;
  left: 0;
  color: #eee;
}
<button id="one" class="name">Hello <div id="txt"></div></button>
<button id="two" class="name">Hello1 <div id="txt"></div></button>
<button id="three" class="name">Hello2 <div id="txt"></div></button>
qjp7pelc

qjp7pelc4#

var click = 0;
var buttons = document.querySelectorAll('button.name');
buttons.forEach(button => {
  button.addEventListener('click', function(){
    var current = button.innerText;
    var existingClicks = current.split(" ");
    if(existingClicks.length > 1) {
      button.innerText += ` & ${++click}`;
    }
    else {
      button.innerText = `clicked = ${++click}`;
    }
  });
});
<button id="one" class="name">Hello</button>
<button id="two" class="name">Hello1</button>
<button id="three" class="name">Hello2</button>
<button id="four" class="name">Hello3</button>
<button id="five" class="name">Hello4</button>

相关问题