1
<img src="" class="className" click="" id='button4' u="button6" r="button5" l="ele1" d="" />

我有一个图像,其中我需要更改“U”数据类型的值。“U”数据是由我正在与之合作的开发人员放置的,我需要能够使用 jQuery 在每 15 秒的指定时间轴上循环更改它的值。

我可以弄清楚循环部分,但我只是想看看是否有办法使用 jQuery 操作“u”值。

4

3 回答 3

2

您可以更改u属性(顺便说一下,如果您从 切换udata-u那么它将是一个有效的属性,在 HTML5 下):

$('img').attr('u', function(i,u) {
    /* i is the index of the current image among all the images returned by the selector,
       u is the current value of that attribute */
    return u.slice(0, -1) + (parseInt(u.replace(/\D/g,''), 10) + 1);
});

JS 小提琴演示

尽管由于问题本身的信息有限,新值应该如何受到循环或其他变量的影响是未知的。

演示如何使用data-*允许自定义属性有效的属性(在 HTML5 下):

<img src="http://placekitten.com/400/500" class="className" click="" id='button4' data-u="button6" data-r="button5" data-l="ele1" data-d="" />

使用以下 jQuery:

$('img').attr('data-u', function (i, u) {
    return u.replace(/\d+$/,'') + (parseInt(u.replace(/\D/g, ''), 10) + 1);
});

JS 小提琴演示

参考在另一个问题中发布的答案(使用函数来更新 jQuery 的 data() 方法中的值将变量设置为等效于匿名函数,而不是返回值),该data()方法不接受函数作为回调, 一样attr(),这就是为什么我使用.attr('data-u', function(){/*...*/})而不是data()方法本身(尽管我先尝试过,但没有成功)。

参考:

于 2013-05-17T15:36:12.757 回答
1

尝试

setInterval(function(){
    var val = $('#button4').attr('u').substring(6);
    $('#button4').attr('u', 'button' + (1 + +val))
}, 1000)

演示:小提琴

于 2013-05-17T15:37:46.073 回答
0

像这样:

$("#button4").attr("u", "new value");
于 2013-05-17T15:35:02.157 回答