change事件是在选项改变时才会触发,页面加载后默认就是第一项被选中,这时你点了第一项,选项并没有改变,事件就不会被触发
可以在页面加载后让它没有选项被选中
<div class="item-select">
<span>选项一</span>
<select name="">
<option value="">选项1</option>
<option value="">选项2</option>
</select>
</div>
//选择
$('select').each(function(){
$(this)[0].selectedIndex = -1;
});
$('.item-select select').on('change', function () {
$(this).prev('span').html($(this).find('option:selected').html());
console.log($(this)[0].selectedIndex)
})