如何根据for属性获取label对象

在表单验证中,要判断input是否为空,为空就要输出提示,比如密码不能为空,用户名不能为空,我想通过for属性获取label对象中的文字提示,要怎么做??

阅读 11.7k
5 个回答
document.querySelector(`label[for="${forValue}"]`).innerHTML;

按你的 Js 基础,建议使用 jQuery 吧。

var id = this.id,
    nice_name = $('label[for="'+ id +'"]').text();
//...

<label for=""></label>
描述:设置或获取给定标签对象指定到的对象。一般用在输入框,单选框,复选框等地方
注意:for的值要与所用控件的id值对应
用实例来演示,看后就明白了

<label for="name">name:</label><input type="text" id="name" />  
<label for="man">男 </label><input type="checkbox" name="man"  id="man"/>  
<label for="woman">女  </label><input type="checkbox" name="woman"  id="woman"/>

当我们运行后,首先我们单击用户名时就会发现和直接单击输入框一样,都可以使光标定位到输入框里,当单击复选框男或者女时,效果和我们直接单击复选框打勾的效果一样,都可以进行打勾操作。

你的意思是想要循环获得所有label吧?首先,你得要有个label数组啊,不然你怎么循环?
比如:var label=document.getElementsByTageName("label");//这是获取了所有的label
然后:for(var i=0,len=label.length;i<len;i++){

    (function(i){
        console.log(label[i].innerHTML);
    })(i)
}

谢邀,问题已经解决了。
1.用属性选择器就是你采纳的那个答案
2.用prev上一个兄弟。一般来说两个都是挨着的吧。
3.把提示内容放在input的data-*自定属性上。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题