如何查找具有特定属性及其值的标签

Bas*_*sit 4 jquery

我有这样的页面布局

<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)