has_attribute?问题

时间:2010-09-23 06:59:21

标签: ruby nokogiri

我有一个HTML文档,我需要检查一下某个属性是否出现在有问题的元素中

假设,该属性未显示。

当我说:

elem.has_attribute? "data-attr"

它返回nil而不是“false”。

当我说:

elem["data-attr"].nil?

它返回“true”,这就是我需要的。

但是,当我说:

!elem["data-attr"].nil?
它又回来了。

当我说:

r = elem["data-attr"].nil?
r = !r

r在第一行执行后变为“true”

但是,在第二行之后,“r”再次为零

它背后的魔力是什么?

2 个答案:

答案 0 :(得分:1)

如果

elem["data-attr"].nil?

返回true,为什么不期望

!elem["data-attr"].nil?

返回nil?

答案 1 :(得分:1)

为什么不使用:

elem["data-attr"].present?

elem["data-attr"].blank?