<img src="" class="className" click="" id='button4' u="button6" r="button5" l="ele1" d="" />
我有一个图像,其中我需要更改“U”数据类型的值。“U”数据是由我正在与之合作的开发人员放置的,我需要能够使用 jQuery 在每 15 秒的指定时间轴上循环更改它的值。
我可以弄清楚循环部分,但我只是想看看是否有办法使用 jQuery 操作“u”值。
您可以更改u
属性(顺便说一下,如果您从 切换u
到data-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);
});
尽管由于问题本身的信息有限,新值应该如何受到循环或其他变量的影响是未知的。
演示如何使用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);
});
参考在另一个问题中发布的答案(使用函数来更新 jQuery 的 data() 方法中的值将变量设置为等效于匿名函数,而不是返回值),该data()
方法不接受函数作为回调, 一样attr()
,这就是为什么我使用.attr('data-u', function(){/*...*/})
而不是data()
方法本身(尽管我先尝试过,但没有成功)。
参考:
尝试
setInterval(function(){
var val = $('#button4').attr('u').substring(6);
$('#button4').attr('u', 'button' + (1 + +val))
}, 1000)
演示:小提琴
像这样:
$("#button4").attr("u", "new value");