为什么jquery选择器从旧值而不是新值中选择元素

raj*_*wat 1 html javascript jquery selector jquery-selectors

每当我用带有选择器的jquery选择元素时,如果我得到selected元素的值它给我新的值,则从旧值而不是新值中选择元素.我的代码在这里http://jsfiddle.net/HUdkN/3/.

在这里,我使用澳大利亚值来选择元素,即使我改变了价值.它会选择元素.为什么??? 有人可以解释一下.

HTML代码

    <input type="text" class="lbl" value="Australia" />
    <div id="result"></div>
    <br />
    <br/>
    <input type="button" value="check" id="check_btn">
Run Code Online (Sandbox Code Playgroud)

JAVASCRIPT代码

    function check_fnc() {
        jQuery('input').removeClass('error');
       jQuery('input[value="Australia"]').each(function () {
           $(this).addClass('error');
            $('#result').html(this.value);
       });
   }

   $('#check_btn').click(function () {
      check_fnc();
   })
Run Code Online (Sandbox Code Playgroud)

Fré*_*idi 5

这是因为一个属性等于选择,例如[value="Australia"]实际HTML属性,而不是当前的DOM属性和匹配valueHTML属性始终包含元素的初始值.

要匹配当前值,您可以使用filter()代替:

$("input").filter(function() {
    return this.value == "Australia";
}).each(function() {
    $(this).addClass("error");
    $("#result").html(this.value);
});
Run Code Online (Sandbox Code Playgroud)