0

我有以下 JQuery 代码:

  $(targetSelector)
    .attr('data-disabled', 'yes')
    .attr('title', '')
    .addClass('disabled')
    .prop('disabled', true);

如何更改此代码,以便在将 title 属性设置为 '' 之前获取标题的当前值并将其存储在 'data-title' 属性中。

4

4 回答 4

3

我建议:

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

JS 小提琴演示

参考:

于 2012-11-27T12:22:09.583 回答
1

尝试这个

$(targetSelector)
.attr({'data-disabled' : 'yes', 'data-title' : function() {return this.title;}})  // set the title before it is removed
.attr('title', '')
.addClass('disabled')
.prop('disabled', true);
于 2012-11-27T12:23:40.217 回答
0

你可以这样做:

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

其他答案是相似的,但是this.title只有this在元素是元素时才能访问,这取决于上下文。上面的方法使用 function 属性来返回标题。

于 2012-11-27T12:26:40.277 回答
0

尝试这个

$(targetSelector)
    .attr('data-disabled' : 'yes')
    .attr('data-title', $(this).attr('title'))
    .attr('title', '')
    .addClass('disabled')
    .prop('disabled', true);
于 2012-11-27T12:24:25.873 回答