Javascript 如何在winjs中获取已单击按钮的id
我的WinJS页面中有几个按钮Javascript 如何在winjs中获取已单击按钮的id,javascript,winjs,win-universal-app,Javascript,Winjs,Win Universal App,我的WinJS页面中有几个按钮 <button id="btn1"> Button 1 </button> <button id="btn2""> button 2 </button>... 如何确定单击了哪个按钮,并将“xxx”的值设置为该按钮的id(btn1、btn2等)。类似的方法应该可以工作querySelector只返回第一个匹配项,因此需要使用querySelectorAll() var buttons=document.qu
<button id="btn1">
Button 1
</button>
<button id="btn2"">
button 2
</button>...
如何确定单击了哪个按钮,并将“xxx”的值设置为该按钮的id(btn1、btn2等)。类似的方法应该可以工作
querySelector
只返回第一个匹配项,因此需要使用querySelectorAll
()
var buttons=document.querySelectorAll(“按钮”);
对于(变量i=0;i
你也可以考虑一下,这样可以使事情变得更干净。
< P>这里有一个Wijs解决方案来获得按钮:var buttons = WinJS.Utilities.query('button');
然后可以将事件绑定到按钮,单击:
buttons.forEach(function (btn) {
btn.addEventListener("click", function () {
console.log('button ' + this.id + ' has been clicked.');
})
});
我是WinJS新手,因此可能有一个更漂亮的解决方案来替换
forEach
如果我理解正确,那么当您有多个按钮连接到单个事件处理程序时,您需要识别按钮(发送者)
:
在JavaScript中,Windows运行时事件参数表示为
单事件对象。在下面的事件处理程序示例中
方法,ev参数是包含发送方和
(目标属性)和其他事件参数。事件
参数是为每个事件记录的参数
因此,您需要为事件处理程序定义一个参数并使用其目标属性。
假设您有以下HTML:
<div id="label1"/>
<div>
<button id="button1">Button1</button><br />
<button id="button2">Button2</button><br />
<button id="button3">Button3</button><br />
</div>
您可以通过以下方式访问发件人:
function buttonClickHandler(eventInfo) {
var clickedButton = eventInfo.target;
var label1 = document.getElementById("label1");
label1.innerHTML = clickedButton.id.toString();
}
请澄清“将“xxx”的值设置为该按钮的id”是什么意思?如何设置文档。查询选择器(“xxx”);记录.querySelector(“btn1”)或记录.querySelector(“btn2”);或者用户单击的任何按钮。类似于windows桌面编程中的“发件人”。
<div id="label1"/>
<div>
<button id="button1">Button1</button><br />
<button id="button2">Button2</button><br />
<button id="button3">Button3</button><br />
</div>
var button1 = document.getElementById("button1");
button1.addEventListener("click", buttonClickHandler);
var button2 = document.getElementById("button2");
button2.addEventListener("click", buttonClickHandler);
var button3 = document.getElementById("button3");
button3.addEventListener("click", buttonClickHandler);
function buttonClickHandler(eventInfo) {
var clickedButton = eventInfo.target;
var label1 = document.getElementById("label1");
label1.innerHTML = clickedButton.id.toString();
}