【发布时间】:2015-07-31 21:06:03
【问题描述】:
我编写了一个函数来截断文本长度超过 X 字符的选择选项。我只需要截断选定的选项,并在未选中时取消截断所有选项。
发生的情况是,即使未选中,它们也会在列表中永远缩短。另外,有没有更简洁的方式来编写整个代码块?
小提琴:
https://jsfiddle.net/kirkbross/pcb0a3Lg/9/
var namesList = ['johnathan', 'tim', 'greggory', 'ashton', 'elizabeth'];
$(function() {
for (var i = 0; i < 5; i++) {
var name = namesList[i];
$('#names').append('<option>' + name + '</option>');
}
var selected_option = $('#names').find('option:selected').val();
var truncated = truncate(selected_option);
$('option:selected').text(truncated.new);
$('#names').change(function(){
var selected_option = $(this).find('option:selected').val();
var truncated = truncate(selected_option);
$('option:selected').text(truncated.new);
});
});
function truncate(selected_option) {
var nameLength = selected_option.length
if (nameLength > 4) {
selected_option = selected_option.substr(0, 4) + '...';
}
return {new: selected_option}
}
【问题讨论】: