jQuery - 选择输入字段的关联标签元素[duplicate]

    这个问题在这里已有答案:                           查找与给定输入关联的html标签                                      21个答案                                    
已邀请:
您不应该使用
prev
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;
    }
}
我希望这有帮助!     
有两种方法可以为元素指定标签: 将label的“for”属性设置为元素的id 将元素放置在标签内 因此,找到元素标签的正确方法是
   var $element = $( ... )

   var $label = $("label[for='"+$element.attr('id')+"']")
   if ($label.length == 0) {
     $label = $element.closest('label')
   }

   if ($label.length == 0) {
     // label wasn't found
   } else {
     // label was found
   }
    
只要你的
input
label
元素与它们的
id
for
属性相关联,你应该能够做到这样的事情:
$('.input').each(function() { 
   $this = $(this);
   $label = $('label[for="'+ $this.attr('id') +'"]');
   if ($label.length > 0 ) {
       //this input has a label associated with it, lets do something!
   }
});
如果未设置
for
,则元素之间没有任何语义关系,并且在该实例中使用label标签没有任何好处,因此希望您始终定义该关系。     

要回复问题请先登录注册