1

属性をチェックするためのより良い方法はありますか:

  1. それは存在します。したがって、属性が存在しない場合、値は false でなければなりません
  2. 値が正しい (ブール値)
var isOwner = false;
    if ($(selectedItem).is('[data-isOwner="True"]') || $(selectedItem).is('[data-isOwner="true"]')) {
        isOwner = true;
    } else {
        isOwner = false;
    }

ここで、 「True」 True」を確認する必要があります...

ありがとう

4

1 に答える 1

3

data-isOwnerに格納されている値を小文字に変換し、その値を「true」とのみ比較できます。

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

上記の の使用により、 selectedItemに属性data-isOwnerがない<wanted-value> || ''場合、式は空の文字列になり、エラーなしでtoLowerCaseを呼び出すことができます。

この小さなハックがなければ、属性が実際に存在することを手動で確認する必要があります。そうしないと、未定義のオブジェクトでtoLowerCaseを呼び出そうとするとランタイム エラーが発生します。


前述の解決策がわかりにくい場合は、次のようなものを使用できます

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

if (typeof(attr_value) == 'string' && attr_value.toLowerCase () == 'true') {
  ...
}
于 2012-07-13T11:37:40.057 に答える