我回答了这个问题:Manipulate Custom Values with jQuery
使用这个 jQuery:
$('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 下允许的自定义属性(而不是无效的,尽管是功能性的自定义属性),所以我将 HTML 调整为:
<img src="http://placekitten.com/400/500" class="className" click="" id='button4' data-u="button6" data-r="button5" data-l="ele1" data-d="" />
(不,我不知道这个click
属性是什么意思,或者它为什么在那里,所以我不理会它。)
并测试了以下 jQuery:
$('img').data('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);
});
$('img').each(function(){
console.log($(this).data('u'));
});
现在,通过该data()
方法,我意识到属性不会被更新,这就是为什么我使用console.log()
来确认更新的值,但是输出是匿名函数本身,而不是我期望从中返回的值功能。我意识到这不太可能是一个错误,并且可能是预期的行为,但是有没有办法使用匿名函数来更新属性,例如在 , 等中使用的相同attr()
方式text()
?