获取javascript中输入元素的索引

get index of input element in javascript

本文关键字:索引 元素 输入 javascript 获取      更新时间:2023-09-26

如果我在一个网页上有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 getIndexFromSet(set, elm){
    var setArr = [].slice.call(set);
    for( var i in setArr )
       if( setArr[i] == elm )
         return i;      
}

以上功能可以这样使用:

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,如果您在这个页面上(在控制台中)运行它

var inputs = $('input'); // get all input elements on the page
inputs.index( $('#save-pinned-sites-btn') ); // find the index of spesific one

您将得到一个表示$('#save-pinned-sites-btn')元素的索引的数字

内联:

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