检查html属性是否存在并使用jquery具有正确的值

时间:2012-07-13 11:36:24

标签: javascript jquery dom

有没有更好的方法来检查属性:

  1. 它存在。因此,如果属性不存在,则值必须为false
  2. 值正确(布尔值)
  3. var isOwner = false;
        if ($(selectedItem).is('[data-isOwner="True"]') || $(selectedItem).is('[data-isOwner="true"]')) {
            isOwner = true;
        } else {
            isOwner = false;
        }
    

    现在我需要检查'True''true' ......

    由于

1 个答案:

答案 0 :(得分:3)

您可以将 data-isOwner 中存储的值转换为小写,并仅将该值与'true'进行比较。

if (($(selectedItem).attr ('data-isOwner') || '').toLowerCase () == 'true')

<wanted-value> || '' 的上述用法将使得 selectedItem 没有属性 data-isOwner 表达式将导致一个空字符串,您可以在其上调用 toLowerCase 而不会出错。

如果没有这个小黑客,你必须手动检查以确保该属性确实存在,否则在尝试调用 toLowerCase 运行时错误 >在未定义的对象上。


如果您发现前面提到的解决方案令人困惑,您可以使用

var attr_value = $(selectedItem).attr ('data-isOwner');

if (typeof(attr_value) == 'string' && attr_value.toLowerCase () == 'true') {
  ...
}