有人可以在这段代码中向我解释.Slice的假设目的吗?如何选择padding-bottom的子集?非常感谢。
$(this).bind('click', function(){
var tid = $(this).attr('id');
tid = tid.replace('play-button-', '');
playheight = parseInt($('#play-view-' + tid, 10).height());
playpadding = parseInt($('#play-view-' + tid, 10).css('padding-bottom').slice(0, -2));
var flex_height = playheight + playpadding;
setTimeout(function(){
$('.flex-viewport').animate({height: flex_height});
},200);
});
---不使用切片的替代方案----
$(this).bind('click', function(){
var tid = $(this).attr('id');
tid = tid.replace('playlist-button-', '');
playheight = $('#playlist-display-' + tid).height();
playheight = parseInt(playheight, 10);
playpadding = ('#playlist-display-' + tid);
playpadding = $(playpadding).css('padding-bottom');
if (playpadding != null) {
playpadding = parseInt(playpadding, 10);
flex_height = playheight + playpadding;
} else {
flex_height = playheight;
}
setTimeout(function(){
$('.flex-viewport').animate({height: flex_height});
},200);
});
答案 0 :(得分:1)
字符串上的切片采用子字符串并返回它。
在这种情况下,它获取填充值并删除最后两个字符(单位 - 例如px或em),以便ParseInt可以将字符串解析为整数。
'10px'.slice(0,-2)
将返回' 10 '
您可以检查this answer与子字符串函数的一些差异: