如何检查'this'是否具有特定属性?

时间:2011-03-30 14:13:11

标签: javascript jquery

我想检查我点击(this)的元素是否具有特定属性,作为if子句中的条件。 可以用JavaScript或jQuery做到这一点吗?

由于

4 个答案:

答案 0 :(得分:14)

我会给出非jQuery的答案,只是为了踢和咯咯笑。

this.hasAttribute("foo")

文档:https://developer.mozilla.org/en/DOM/element.hasAttribute

答案 1 :(得分:9)

在JavaScript中,nullundefined(甚至是空字符串)的任何内容都是隐式“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值。但这通常就足够了。