按属性比较元素
Comparing elements by attribute
好的,我正在尝试检查属性value
的值是否等于某个字符串。如果我调用alert来告诉我这是否为真,它将为真,但如果该语句为真,我就不能添加类。我做错了什么?
<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 上的代码
您正在向div添加value
属性。仅根据本文档<button>, <option>, <input>, <li>, <meter>, <progress>, <param>
具有值属性。因此,您可以向这个div 添加自定义的数据属性
其次,您试图在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
它正在按预期工作。问题是this
引用了代码中的document
对象。更改为:
$('.firstch').addClass('disable');
您的选择器添加类错误
$(this).addClass('disable');
这里$(this)是窗口对象,您应该为要添加类的元素使用正确的选择器。
相关文章:
- 比较两个数组中的元素
- Javascript集:任何覆盖元素之间比较的方法
- Javascript选择元素到字符串的比较
- 如何比较两个字符串并删除jquery中的元素
- 比较元素值并将属性分配给较大的
- 元素值比较的结果不正确
- 比较数组中的连续元素不会返回任何结果(javascript)
- 硒如何比较元素
- 在 HTML/CSS 中更改元素高度与宽度的比较
- 比较两个数组的元素
- 基于比较子元素内容和目标标题内容的Javascript排序元素
- javascript,两个数组的相同元素之间的比较
- 比较数组中的元素,找出元素的最大和
- 如何比较数组中的元素(javascript)
- 如何在 Javascript 中将一个数组的元素与另一个数组的索引进行比较
- 通过jQuery比较元素
- jQuery 选择器,用于通过比较元素的两个数据属性来选择元素
- 比较两个数组并获取仅包含在一个数组中的元素
- 获取Common和Uniques元素比较Javascript中的两个或多个数组
- 如何在两个数组元素比较中找到较大的数