我有这样的页面布局
<input id="name" class="mandotary" type="text">
<label for="name">Name must be entered</label>
<input id="code" class="mandotary" type="text">
<label for="code">Code must be entered</label>
Run Code Online (Sandbox Code Playgroud)
现在我想首先加载页面时隐藏标签元素.如果失去焦点且值为null,则应显示标签,否则应隐藏标签.我试过这个
var inputElementArray = $("input.mandotary");
$.each(inputElementArray, function(index, element){
var id = $(element).attr("id");
var label = $("label").attr("for", id);
// label.hide();
$(element).focus(function(){
var next = $(element).next();
$(element).next().hide();
}); //end of focus()
$(element).blur(function(){
// get value of text area
var text = $(element).val();
if (text == "") {
var next = $(element).next();
$(element).next().show();
} //end of if
}); //end of blur()
}); //end of $(document).ready(fn)
Run Code Online (Sandbox Code Playgroud)
但行
var label = $("label").attr("for", id);
Run Code Online (Sandbox Code Playgroud)
给我两个标签.我只想要那个属性值为id(名称或代码)的标签.我在var id中得到名称或代码作为id.但它找到了两个人.如何找到属性值等于我的输入元素id的标签?
谢谢
gdo*_*ica 13
var label = $('label[for="' + id + '"]');
// But it can be done simply with:
var label = $(element).next('label').attr("for", id);
Run Code Online (Sandbox Code Playgroud)
笔记和最佳部分:
你的代码过度使用jQuery是没有充分理由的:
var id = $(element).attr("id");
// Can be simply:
var id = element.id;
Run Code Online (Sandbox Code Playgroud)
你可以用each这种方式使用jQuery函数:
var inputElementArray = $("input.mandotary");
$.each(inputElementArray, function(index, element){
Run Code Online (Sandbox Code Playgroud)
要用于直接元素:
$("input.mandotary").each(function(index, element){
//...
}):
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32921 次 |
| 最近记录: |