HTML:
<!-- try to change the value="" -->
<input class="test" type="text" value="">
的jQuery
$(function () {
if (!$(".test").val()) {
alert("Empty");
$(this).addClass("removeMe");
} else {
alert("not Empty");
$(this).addClass("addMe");
}
});
为什么$(this)
在这里不起作用?如果要包含多个元素(.test
),例如3:if (!$(".test, .test2, .test3").val()) {
答案 0 :(得分:4)
问题是因为代码直接在document.ready处理程序中运行,因此属于document
的范围,因此this
引用document
。
为了达到你的要求,你最好缓存一个选择器并再次使用它来添加所需的类,如下所示:
$(function () {
var $test = $('.test');
if (!$test.val()) {
console.log("Empty");
$test.addClass("removeMe");
} else {
console.log("not Empty");
$test.addClass("addMe");
}
});
如果要包含多个元素,例如3:
,有什么可以做的呢?if (!$(".test, .test2, .test3").val()) {
在这种情况下,您需要单独测试每个元素:
if (!$('.test1').val() && !$('.test2').val() && ... ) {