1

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

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

现在我需要检查“真”“真” ...

谢谢

4

1 回答 1

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') {
  ...
}
于 2012-07-13T11:37:40.057 回答