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-*属性中获取的所有内容都可以通过 jQuerysdata(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 回答