0

次のコードを使用しています。

    $(targetSelector)
        .attr({
            'data-disabled': 'yes',
            'data-title': function() { return this.title },
            'title': ''
        })
        .addClass('disabled')
        .prop('disabled', true);

これは、要素のタイトルを最初に data-title に格納した後に '' に設定します。

タイトルが現在空の文字列に等しい場合、 data-title 属性から取得して要素のタイトルを復元するにはどうすればよいですか? 上記のような関数でこれを行う必要があると思いますが、関数にチェックインするにはどうすればよいですか?

4

2 に答える 2

1

属性で使用したものはすべて、名前が続くdata-*jQuerys メソッドからアクセスできるため、以下のコードを使用できますdata(name)data-

$(targetSelector)
    .attr('title',function() { return this.title || $(this).data("title"); })

これは、属性titleが存在しない場合、または this.title が他の偽の値 (例: false) を返す場合にもタイトルを設定しますが、 this.title === "" の両方の場合に値を設定することを想定していますおよび this.title === undefined であり、後者は予期されていません (これには、ある時点で title 属性が明示的にブール値に設定されている必要があります)false

于 2012-11-27T12:38:47.693 に答える
0

これを試すことができます:

$(targetSelector).attr('title', function() {
    return this.title || $(this).data('title');
});

falsyの場合はタイトルを返し、それ以外の場合は data-title 属性を取得します。

于 2012-11-27T12:40:55.823 に答える