亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

IE6/7/8中Option元素未設value時Select將獲取空字符串

 更新時間:2011年04月07日 22:53:31   作者:  
可以看到當忘記寫option的value時這些現(xiàn)代瀏覽器都會盡量返回正確的(客戶端程序員想要的)結果value,其容錯性比IE6/7/8做的更好。
如下
復制代碼 代碼如下:

<!DOCTYPE HTML>
<html>
<head>
<title>IE6/7/8中Option元素未設value時Select將獲取空字符串</title>
</head>
<body>
<select onchange="alert(this.value)">
<option>one</option>
<option>two</option>
<option>three</option>
</select>
</body>
</html>

當觸發(fā)change事件時,各瀏覽器中測試結果如下:
IE6/7/8 : 彈出空字符串
IE9/Firefox/Safari/Chrome/Opera : 彈出對應的option元素的innerText值。

很明顯,IE9/Firefox/Safari/Chrome/Opera 的實現(xiàn)有一定道理。即當option的value和option的innerText相同時可以省略掉其value不寫。這樣更簡潔。可惜 IE6/7/8 不支持這么寫。為保證兼容所有瀏覽器,書寫option時務必別少了value屬性。

把上面的html代碼稍作修改

復制代碼 代碼如下:

<select onchange="alert(this.value)">
<option value="1">one</option>
<option>two</option>
<option>three</option>
</select>

給第一個option添加了value屬性。這時測試步驟如下
1,選擇two
2,選擇one

兩次彈出的結果如下:
IE6/7/8 : [空字符串,1]
IE9/Firefox/Safari/Chrome/Opera : [two,1]

從結果上可以看出各瀏覽器的實現(xiàn)大概如下:

IE6/7/8中,如果option沒有value值,那么將返回空字符串。
IE9/Firefox/Safari/Chrome/Opera 中先取option的value值,如果沒有value屬性,則取option的innerText值。

再修改下代碼
復制代碼 代碼如下:

<select onchange="alert(this.value.length)">
<option value="1">one</option>
<option> two </option>
<option>three</option>
</select>

與上一步相比,第二個option的two兩邊加了空格。這次我們alert出value的長度。選擇two。這時各瀏覽器中彈出結果如下
IE6/7/8 : 0
IE9/Firefox/Safari/Chrome/Opera : 3

IE6/7/8 中對于沒有value屬性的option返回空字符串,其length自然是0。這次測試關注的主要是IE9/Firefox/Safari/Chrome/Opera 這些現(xiàn)代瀏覽器。它們中返回的都是3卻不是5??梢钥吹竭@些瀏覽器內部將two兩邊的空白符去掉了(trim)。

上一個測試已經提到了IE9/Firefox/Safari/Chrome/Opera中先取option的value,value屬性沒有再取option的innerText值。對于沒有設置value屬性的option,它們努力將其innerText作為value返回,甚至會自動去掉兩邊的空白符。

以上一直提到返回option的innerText,卻不是innerHTML。再修改下代碼

復制代碼 代碼如下:

<select onchange="alert(this.value)">
<option value="1">one</option>
<option><span>two</span></option>
<option>three</option>
</select>

第二個option沒有value屬性,其內是個span元素。這時選擇two。在IE9/Firefox/Safari/Chrome/Opera中彈出的仍然是“two”,而不是“<span>two</span>”。如果alert出其length會發(fā)現(xiàn)仍然是3,而不是“<span>two</span>”的長度16。

可以看到當忘記寫option的value時這些現(xiàn)代瀏覽器都會盡量返回正確的(客戶端程序員想要的)結果value,其容錯性比IE6/7/8做的更好。

相關:
各瀏覽器中option元素的表現(xiàn)差異

相關文章

  • 微信小程序實現(xiàn)列表條件篩選

    微信小程序實現(xiàn)列表條件篩選

    這篇文章主要為大家詳細介紹了微信小程序實現(xiàn)列表條件篩選,篩選框的效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • canvas雪花效果核心代碼分享

    canvas雪花效果核心代碼分享

    本文主要分享了canvas實現(xiàn)雪花效果的核心代碼,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 分享一個原生的JavaScript拖動方法

    分享一個原生的JavaScript拖動方法

    本文給大家分享的是基于JavaScript的setCapture方法實現(xiàn)的拖動效果,非常的簡單實用,有需要的小伙伴可以參考下
    2016-09-09
  • 加載遠程圖片時,經常因為緩存而得不到更新的解決方法(分享)

    加載遠程圖片時,經常因為緩存而得不到更新的解決方法(分享)

    本篇文章是對加載遠程圖片時,經常因為緩存而得不到更新的解決方法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • js實現(xiàn)簡單模態(tài)窗口,背景灰顯

    js實現(xiàn)簡單模態(tài)窗口,背景灰顯

    昨天中午做項目需要一個模態(tài)窗口,想起上一個公司的項目經理曾經做過一個比較牛的模態(tài)窗口,至今沒用搞清楚實現(xiàn)原理,平時也沒有時間去分析,試著自己做了一個,用了一天的時間終于完成了,給大家一起分享, 也希望高手多提意見。第一次在博客園上發(fā)文章,挺高興的。
    2008-11-11
  • javascript設計模式 – 適配器模式原理與應用實例分析

    javascript設計模式 – 適配器模式原理與應用實例分析

    這篇文章主要介紹了javascript設計模式 – 適配器模式,結合實例形式分析了javascript適配器模式相關概念、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • JS獲取年月日時分秒的方法分析

    JS獲取年月日時分秒的方法分析

    這篇文章主要介紹了JS獲取年月日時分秒的方法,結合實例形式分析了JS獲取具體時間的常犯錯誤與相應解決方法,需要的朋友可以參考下
    2016-11-11
  • js遍歷添加欄目類添加css 再點擊其它刪除css【推薦】

    js遍歷添加欄目類添加css 再點擊其它刪除css【推薦】

    這篇文章主要介紹了js遍歷添加欄目類添加css 再點擊其它刪除css的實例代碼,非常不錯,具有一定的參考借鑒借鑒價值,需要的朋友可以參考下
    2018-06-06
  • js跳轉頁面方法實現(xiàn)匯總

    js跳轉頁面方法實現(xiàn)匯總

    js跳轉頁面的方法有很多,本文搜集整理了一些,個人感覺還不錯,希望對大家有所幫助
    2014-02-02
  • JavaScript中Function與Object的關系

    JavaScript中Function與Object的關系

    本文主要介紹了JavaScript中Function與Object的關系,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05

最新評論