我想检查我点击(this)的元素是否具有特定属性,作为if子句中的条件。 可以用JavaScript或jQuery做到这一点吗?
由于
答案 0 :(得分:14)
我会给出非jQuery的答案,只是为了踢和咯咯笑。
this.hasAttribute("foo")
文档:https://developer.mozilla.org/en/DOM/element.hasAttribute
答案 1 :(得分:9)
在JavaScript中,null
或undefined
(甚至是空字符串)的任何内容都是隐式“false”,因此您可以执行此操作(假设您使用jQuery引用HTML属性) :
if ($(this).attr('foo')) {
}
此外,如果您需要属性中的值,则可以执行以下操作:
var foo;
if (foo = $(this).attr('foo')) {
// use "foo" in here
}
答案 2 :(得分:0)
你的意思是这样的吗?\
if ($.trim($(this).attr('attribute')) != '')
{ ... }
答案 3 :(得分:0)
如果您正在使用HTML属性,那么getAttribute是唯一合理可靠的方法,并指出它在IE中有怪癖。
如果您刚刚访问DOM属性,那么只需:
if (this.foo) {
...
}
可能会这样做。如果foo设置为数字零(0),空字符串,null,NaN或未定义,则测试返回false。因此它实际上并没有告诉您元素是否具有该属性,只有尝试访问它才会返回falsey值。但这通常就足够了。