查找与给定输入关联的 html 标签
2022-08-30 04:36:53
假设我有一个html表单。每个输入/选择/文本区域将具有一个对应的属性,该属性设置为其同伴的 id。在这种情况下,我知道每个输入只有一个标签。<label>
for
给定javascript中的输入元素 - 例如,通过onkeyup事件 - 找到它相关标签的最佳方法是什么?
假设我有一个html表单。每个输入/选择/文本区域将具有一个对应的属性,该属性设置为其同伴的 id。在这种情况下,我知道每个输入只有一个标签。<label>
for
给定javascript中的输入元素 - 例如,通过onkeyup事件 - 找到它相关标签的最佳方法是什么?
如果你正在使用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];
}
}
首先,扫描页面以查找标签,并从实际的表单元素中分配对标签的引用:
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!';
无需查找数组:)