Re: [討論] removeAttr, selected, IE bug?
不知道單純移除 selected 的目的為何呢?換個說法,移除之後沒有打算指定另外一個
項目嗎?如果不執著一定要移除那個標籤,而單純只是想藉由事件的觸發來改變選擇的
項目的話,下面這個範例也許可以給你參考看看。簡單說,就是直接指定另外一個
option 的 selected 屬性值為 true,那麼原本被選中項目的 seleceted 值就會由
true 變成 false;而新設定的項目就由 false 變成 true 了。
以下範例在 Firefox、IE8 以及 Chrome 測試無誤,至於 IE6,我之前記得是也可以正
常動作,但不知道記憶有沒有錯誤就是。
<!-- 以下<del>飯粒</del>範例請黏貼到<del>嘴角</del> html 檔做測試 -->
<select id="dpmenu">
<option value="one">我是第一項</option>
<option value="two" selected="selected">我是原本預設的第二項</option>
</select>
<button onclick="alert(
'第一項的 selected 屬性值:' + thisMenu.options[0].selected +
'\r第二項的 selected 屬性值:' + thisMenu.options[1].selected +
'\r目前選中項目的 value:' + thisMenu.options[thisMenu.selectedIndex].value
)">告訴我選單狀態</button>
<p id="message">再過 <span id="countdown">5</span> 秒後,選擇項會改變喔!</p>
<script type="text/javascript">
var seconds = 5;
var thisMenu = document.getElementById('dpmenu');
var countdown = function () {
--seconds;
if (seconds === 0) {
thisMenu.options[0].selected = true; // 關鍵在此
document.getElementById('message').style.display = 'none';
} else {
setTimeout(countdown, 1000);
document.getElementById('countdown').innerHTML = String(seconds);
}
}
setTimeout(countdown, 1000);
</script>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.225.196.22
→
05/23 18:29, , 1F
05/23 18:29, 1F
推
05/23 18:58, , 2F
05/23 18:58, 2F
→
05/23 19:03, , 3F
05/23 19:03, 3F
→
05/23 19:03, , 4F
05/23 19:03, 4F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 3 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章