Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在winjs中获取已单击按钮的id_Javascript_Winjs_Win Universal App - Fatal编程技术网

Javascript 如何在winjs中获取已单击按钮的id

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

我的WinJS页面中有几个按钮

<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();
}