我有一组输入字段,其中一些具有关联的标签,有些没有:
<label for="bla">bla</label> <input type="text" id="bla" />
<label for="foo">bla <input type="checkbox" id="foo" /> </label>
<input ... />
那么,如何为每个输入选择关联的标签(如果存在)?
您不应该通过使用来依赖元素的顺序prev
or next
。只需使用for
标签的属性,因为它应该对应于您当前正在操作的元素的 ID:
var label = $("label[for='" + $(this).attr('id') + "']");
然而,在某些情况下,标签上不会有for
设置,在这种情况下,标签将是其关联控件的父级。要在这两种情况下找到它,您可以使用以下变体:
var label = $('label[for="' + $(this).attr('id') + '"]');
if(label.length <= 0) {
var parentElem = $(this).parent(),
parentTagName = parentElem.get(0).tagName.toLowerCase();
if(parentTagName == "label") {
label = parentElem;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)