查找与给定输入关联的html标签的最佳方法是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (59)

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

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

提问于
用户回答回答于

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

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!';

不需要查找数组。

用户回答回答于

如果使用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];
   }
}

扫码关注云+社区

领取腾讯云代金券