每当我使用带有选择器的 jquery 选择元素时,如果我获得所选元素的值,它会从旧值而不是新值中选择元素,它会给我新值。我的代码在这里 http://jsfiddle.net/HUdkN/3/ .
这里我使用 Australia 值来选择元素,即使我更改了值。它将选择元素。为什么 ???有人可以解释一下吗。
HTML 代码
<input type="text" class="lbl" value="Australia" />
<div id="result"></div>
<br />
<br/>
<input type="button" value="check" id="check_btn">
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();
})
最佳答案
那是因为 Attribute Equals selector例如 [value="Australia"]
匹配实际的 HTML 属性,而不是当前的 DOM 属性,value
HTML 属性将始终包含元素的原始值。
要匹配当前值,可以使用filter()相反:
$("input").filter(function() {
return this.value == "Australia";
}).each(function() {
$(this).addClass("error");
$("#result").html(this.value);
});
关于javascript - 为什么 jquery 选择器从旧值而不是新值中选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18567496/