gpt4 book ai didi

javascript - 使用 JavaScript 在 IE9 中获取数据列表选项

转载 作者:太空狗 更新时间:2023-10-29 13:25:53 25 4
gpt4 key购买 nike

此代码适用于除 Internet Explorer 9 之外的所有主要浏览器。我不明白我做错了什么,可能是我遗漏了一些简单的东西。

复制此代码(或 use this jsFiddle)以查看 IE9 中的问题:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Datalist fetching in IE9</title>
<script type="text/javascript">
//document.createElement('datalist');//this seems to fix it for IE6, but not for IE9
window.onload = function() {
alert(document.getElementById('languages').getElementsByTagName('option').length);//should alert 42
};
</script>
</head>
<body>
<form method="post">
<input name="language" type="text" value="English" list="languages" />
<datalist id="languages">
<option value="Arabic" />
<option value="Bengali" />
<option value="Bulgarian" />
<option value="Catalan" />
<option value="Chinese" />
<option value="Croatian" />
<option value="Czech" />
<option value="Danish" />
<option value="Dutch" />
<option value="English" />
<option value="Filipino" />
<option value="Finnish" />
<option value="French" />
<option value="German" />
<option value="Greek" />
<option value="Gujarati" />
<option value="Hebrew" />
<option value="Hindi" />
<option value="Hungarian" />
<option value="Indonesian" />
<option value="Italian" />
<option value="Japanese" />
<option value="Kannada" />
<option value="Korean" />
<option value="Latvian" />
<option value="Lithuanian" />
<option value="Malay" />
<option value="Malayalam" />
<option value="Marathi" />
<option value="Norwegian" />
<option value="Oriya" />
<option value="Persian" />
<option value="Polish" />
<option value="Portuguese" />
<option value="Romanian" />
<option value="Russian" />
<option value="Serbian" />
<option value="Slovak" />
<option value="Slovenian" />
<option value="Spanish" />
<option value="Swedish" />
<option value="Tamil" />
</datalist>
</form>
</body>
</html>

我希望它最终尽可能跨浏览器。

最佳答案

IE 9 忽略 option不是 select 的直接子元素的元素元素(或一个内的 optgroup)。一个简单的解决方法是包装您的 option隐藏元素 select使用条件注释的元素:

<datalist id="languages">
<!--[if IE 9]><select disabled style="display:none"><![endif]-->
<option value="Arabic">
...
<!--[if IE 9]></select><![endif]-->
</datalist>

这是一个 jsFiddle demo这种方法。

2017 年更新:值得注意的是,截至 2017 年 7 月,iOS 和 Mac 上的 Safari 仍未添加对 <datalist> 的支持。元素。 OP 要求提供一种适用于所有主要浏览器的解决方案,因此这可能不是达到这种效果的最佳解决方案。

更多信息在这里: http://caniuse.com/#search=datalist

关于javascript - 使用 JavaScript 在 IE9 中获取数据列表选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12394512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com