如何从元素的属性设置元素的标题?

时间:2012-11-27 12:36:43

标签: javascript jquery

我使用以下代码:

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

首先将元素标题存储在数据标题中后,将其设置为''。

如果标题当前等于空字符串,如何通过从data-title属性返回来恢复元素标题?我假设我需要在上面这样的函数中执行此操作但是如何在函数检查中进行编码?

2 个答案:

答案 0 :(得分:1)

data-*属性中的所有内容都可以通过jQuerys data(name)方法访问,其中name是data-之后的名称,因此您可以使用以下代码

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

如果属性title不存在或者this.title返回任何其他假值(例如false),这也将设置标题但是我假设您希望设置值在this.title ===“”和this.title === undefined并且不期望后者的情况下(这将要求某些点的title属性显式设置为布尔值{{1} }

答案 1 :(得分:0)

你可以试试这个:

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

如果标题是 falsy 将返回标题,否则它将获取数据标题属性。