IE 9-10下如果option元素没有定义value而在设置innerText时没有把两边的空白去掉,那么 取el.text,浏览器会进行trim, 并且伪造一个value值,此值会在刚才trim的结果两边添加了一些空白
<script> window.onload = function(){ var el = document.getElementById("aaa") alert("|"+ el.value +"|")// "| eeee |" alert(!!el.hasAttribute && el.hasAttribute("value"))//false alert("|"+ el.text +"|")// "|eeee|" } </script> <select> <option id="aaa"> eeee </option> </select>