按属性比较元素

时间:2016-07-24 05:11:11

标签: javascript jquery html5 attributes

好的我正在尝试检查属性value的值是否等于某个字符串。如果我提醒它告诉我这是否属实,那将是真的,但如果该陈述为真,我就无法添加课程。我做错了什么?

<div class="firstch" value="20:30">TEST</div>
div {
    display:block;
    border:1px solid black;
}
.disable {
    background-color: red;
}
var attr = $('.firstch').attr('value');

if ( attr === '20:30') {
    $(this).addClass('disable');
} else {
    alert('YEah right -_-');
}

JsFiddle

上的代码

3 个答案:

答案 0 :(得分:1)

您正在为div添加value属性。仅限此document <button>, <option>, <input>, <li>, <meter>, <progress>, <param>具有此属性。因此,您可以向此div添加自定义data属性

其次,你试图在if循环中使用 this 进行引用。但是这里$(this)将失败,因为你没有遍历任何jquery对象。相反,它只是比较和平等检查。所以你需要使用适当的选择器来引用元素。

希望此代码段有用

<强> HTML

<div class="firstch" data-value="20:30">TEST</div> // Note use of data attribute

<强> JS

 var attr = $('.firstch').attr('data-value');

 // For some browsers, `attr` is undefined; for others, `attr` is false. Check for both.
 if (attr === '20:30') {
   $('.firstch').addClass('disable');
 } else {
   alert('YEah right -_-');
 }

JSFIDDLE

答案 1 :(得分:0)

它按预期工作。问题是this引用了代码中的document对象。将其更改为:

$('.firstch').addClass('disable');

答案 2 :(得分:0)

你的选择器添加类

是错误的
$(this).addClass('disable');

这里$(this)是 window 对象,您应该为要添加类的元素使用正确的选择器。

相关问题