Javascript jQuery选择器$(“输入[with=“+id+”]))

Javascript jQuery选择器$(“输入[with=“+id+”])),javascript,jquery,Javascript,Jquery,这个jQuery选择器实际上是如何工作的 $input[with=+id+] 在该函数中使用: function enableFields(id) { $("input[with="+id+"]").each(function() { $(this).attr('disabled', false); }); } 说“选择所有具有with属性的输入元素”是否正确。在当前输入元素上,将with属性值设置为当前元素id属性的值 本质上,如果输入元素看起来像,则立

这个jQuery选择器实际上是如何工作的

$input[with=+id+]

在该函数中使用:

function enableFields(id) {
    $("input[with="+id+"]").each(function() {
        $(this).attr('disabled', false);
    });   
}
说“选择所有具有with属性的输入元素”是否正确。在当前输入元素上,将with属性值设置为当前元素id属性的值


本质上,如果输入元素看起来像,则立即将with属性设置为id中的值,该值将查找并使用它来选择要调用每个元素的元素?

仅在针对多个输入进行更新时使用每个。使用id和类名让我觉得你的目的是一次更新一个输入。不要再使用disabled false,因为大多数现代浏览器都将disabled的存在解释为disabled。如果要更新多个输入,请使用className选择器而不是id

保持独特身份的精神:

function enableFields(id) {
    $("#" + id).removeAttr('disabled');
}
使用类名更新多个输入:

function enableFields(className) {
    $("." + className).each(function() {
        $(this).removeAttr('disabled');
    });   
}

这是一个选择器,你不能改变任何东西。如果您愿意,可以将其视为[with==id]上面的代码,它接受一个id,查找所有具有id值的属性的输入标记,并将其禁用的属性设置为false。这样说是否正确…-不,那根本不正确。我上面说的只是模糊不清的正确。因为id没有被编码或转义,我解释了我认为是它的意图,但它也可能被滥用,这取决于id的值。例如,如果id的值是。。。a] ,**[将启用页面上的每个标记。即使是那些不是输入标记的标记。由于Id是唯一的,您应该只需要执行$+Id.attr'disabled',false,但您甚至不应该执行此操作,因为大多数浏览器忽略false并将disabled的存在视为disabled。因此,您希望改为使用:removeAttr'disabled'。不要使用每一个。存在no由于您只针对特定的输入,因此需要使用每个输入。