获取javascript中输入元素的索引

获取javascript中输入元素的索引,javascript,html,Javascript,Html,如果我在一个网页上有3个输入框,用户单击第二个输入,我需要获取输入索引,即输入在页面上的位置。我需要纯javascript的。这是我到目前为止所做的,但它不起作用 document.querySelector('html').onclick = function (e) { log(e); } function log(obj) { var nodeName = obj.target.nodeName var idx = nodeName.length con

如果我在一个网页上有3个输入框,用户单击第二个输入,我需要获取输入索引,即输入在页面上的位置。我需要纯javascript的。这是我到目前为止所做的,但它不起作用

 document.querySelector('html').onclick = function (e) {
    log(e);
}

function log(obj) {
    var nodeName = obj.target.nodeName
    var idx = nodeName.length
    console.log(nodeName, idx);
}
任何帮助都将不胜感激

纯javascript: 上述功能可以像这样使用:

function checkInputFocus(e){
  if(e.target && e.target.nodeName == 'input' )
    index = getIndexFromSet(inputs, e.target);
}

var inputs = document.querySelectorAll('input');
document.addEventListener("click", checkInputFocus);

使用jQuery,如果您在此页面(在控制台中)上运行此命令 您将得到一个表示
$(“#save pinted sites btn”)的索引的数字
元素

内联:

<input onclick="for(i=0;i<this.parentNode.getElementsByTagName('input').length;i++){if(this==this.parentNode.getElementsByTagName('input')[i]){alert(i);}}">
并加上:

function show_index(which) {
for(i=0;i<which.parentNode.getElementsByTagName('input').length;i++){
if(which==which.parentNode.getElementsByTagName('input')[i]){
alert(i);
}}
函数显示索引(哪个){

对于(i=0;i“不工作”不提供任何信息。您需要实际描述问题以获得尽可能好的帮助。您应该解释为什么您在网上搜索的内容没有帮助,以及您尝试了哪些方法来解决问题。您应该更清楚地了解您要查找的内容。显示一个包含多个
输入
元素和sho的最小html示例w您希望这些元素的索引值是什么。您所说的
位置是什么意思?请更清楚。您指的是从上到左的像素还是索引(元素编号)相对于之前的输入元素?如果用户单击第二个输入,则它应返回2,或者如果它是基于零的,则返回1。索引将仅用于整个文档的选定输入。这已经有一个答案vsync,id、类或名称未知,因此我不能在选择器上使用for循环。@Rob,我已更新了我的答案,所以y您可以使用指向输入字段的
this
调用函数,当它聚焦于hanks vsync时,稍微修改一下这个var index=getIndexFromSet(document.queryselectoral('input'),obj.target);效果很好!我已经更新了关于如何将它与委托的
click
事件侦听器一起使用的答案(为了更好的表现)
<input onclick="for(i=0;i<this.parentNode.getElementsByTagName('input').length;i++){if(this==this.parentNode.getElementsByTagName('input')[i]){alert(i);}}">
onclick="show_index(this)"
function show_index(which) {
for(i=0;i<which.parentNode.getElementsByTagName('input').length;i++){
if(which==which.parentNode.getElementsByTagName('input')[i]){
alert(i);
}}