我想在span元素中显示输入框的文本。 另外我想在页面加载时加载输入框的内容。
目前我有这段代码,不是很短:
if( $('#subject').val().length > 0 ) {
$('#text').text(': '+$('#subject').val());
}
$('#subject').on('input', function() {
if( $('#subject').val().length > 0 ) {
$('#text').text(': '+$(this).val());
} else {
$('#text').empty();
}
});
有人可以帮助我提高效率吗?
答案 0 :(得分:1)
使用 trigger() 在页面加载时触发元素上的相同事件。
$('#subject').on('input', function() {
var value = $('#subject').val();
$('#text').text( value.length > 0 ? ': ' + value : '' );
}).trigger('input');

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<span id="text"></span>
<input id="subject" value="asdasdasd">
&#13;
答案 1 :(得分:0)
优化此代码没有意义,因为它足够小,不会产生任何性能问题。不过这是我对“清洁”代码的建议:
var input = $('#subject'),
span = $('#text');
function onInput() {
span.text(input.val() ? ':' + input.val() : '');
};
onInput();
$(input).on('input', onInput);