最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

把上面的html代碼稍作修改

復(fù)制代碼 代碼如下:

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

給第一個(gè)option添加了value屬性。這時(shí)測(cè)試步驟如下
1,選擇two
2,選擇one

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

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

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

再修改下代碼
復(fù)制代碼 代碼如下:

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

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

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

上一個(gè)測(cè)試已經(jīng)提到了IE9/Firefox/Safari/Chrome/Opera中先取option的value,value屬性沒有再取option的innerText值。對(duì)于沒有設(shè)置value屬性的option,它們努力將其innerText作為value返回,甚至?xí)詣?dòng)去掉兩邊的空白符。

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

復(fù)制代碼 代碼如下:

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

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

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

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

相關(guān)文章

  • 微信小程序日期時(shí)分組件(年月日時(shí)分)

    微信小程序日期時(shí)分組件(年月日時(shí)分)

    這篇文章主要為大家詳細(xì)介紹了微信小程序日期時(shí)分組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • javascript實(shí)現(xiàn)table表格隔行變色的方法

    javascript實(shí)現(xiàn)table表格隔行變色的方法

    這篇文章主要介紹了javascript實(shí)現(xiàn)table表格隔行變色的方法,涉及javascript針對(duì)表格元素與樣式的操作技巧,需要的朋友可以參考下
    2015-05-05
  • JSONObject與JSONArray使用方法解析

    JSONObject與JSONArray使用方法解析

    這篇文章主要介紹了JSONObject與JSONArray使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 最新評(píng)論

    曲周县| 溧水县| 嘉荫县| 醴陵市| 澄江县| 霍山县| 壤塘县| 邵武市| 渭南市| 宣化县| 明水县| 连城县| 蓝山县| 南陵县| 西峡县| 奈曼旗| 教育| 桃江县| 西峡县| 章丘市| 涡阳县| 郎溪县| 望奎县| 伽师县| 民丰县| 临江市| 文安县| 湄潭县| 团风县| 邵武市| 伊通| 华安县| 双柏县| 定襄县| 安远县| 江孜县| 阳谷县| 汽车| 交口县| 浮梁县| 平远县|