查找与给定输入关联的 html 标签

2022-08-30 04:36:53

假设我有一个html表单。每个输入/选择/文本区域将具有一个对应的属性,该属性设置为其同伴的 id。在这种情况下,我知道每个输入只有一个标签。<label>for

给定javascript中的输入元素 - 例如,通过onkeyup事件 - 找到它相关标签的最佳方法是什么?


答案 1

如果你正在使用jQuery,你可以做这样的事情

$('label[for="foo"]').hide ();

如果您没有使用jQuery,则必须搜索标签。下面是一个函数,它将元素作为参数并返回关联的标签

function findLableForControl(el) {
   var idVal = el.id;
   labels = document.getElementsByTagName('label');
   for( var i = 0; i < labels.length; i++ ) {
      if (labels[i].htmlFor == idVal)
           return labels[i];
   }
}

答案 2

首先,扫描页面以查找标签,并从实际的表单元素中分配对标签的引用:

var labels = document.getElementsByTagName('LABEL');
for (var i = 0; i < labels.length; i++) {
    if (labels[i].htmlFor != '') {
         var elem = document.getElementById(labels[i].htmlFor);
         if (elem)
            elem.label = labels[i];         
    }
}

然后,您可以简单地执行以下操作:

document.getElementById('MyFormElem').label.innerHTML = 'Look ma this works!';

无需查找数组:)