`
tailsherry
  • 浏览: 136177 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

灵活处理select/option对象中的特殊字符

阅读更多

现在,已经习惯用js去构造网页上的组件,对于普通的下拉框,我们习惯用以下js来构造成页面组件:

var select = document.createElement("select");
var option = document.createElement("option");
option.innerHTML = "Option Text";
option.value = "Value";
select.appendChild(option);

 

这里不能用option.text = "Option Text"来给option定义显示文本,原因很简单:IE在这种情况下不支持这样的属性赋值,必须使用innerHTML来替换,否则,option的text值在IE下无法正常显示在页面组件上。

 

如此这般,代码在IE和Firefox下都可以顺利的运行,一切都很正常。但是,潜在的问题也因此产生。

 

如果我们要设定的text中如果含有特殊字符,如常见的&,<,>等,直接赋到innerHTML中,在IE下所显示出来的text就是空的了。但是,在Firefox下似乎一切都比较正常,但翻译出来的innerHTML中将特殊字符都转换成了&amp;&gt,&lt等。

 

有没有一种折衷的方案,在任意情况下,都能在IE和Firefox下按原文显示或获取一个下拉框的值或文本呢?

 

查阅资料后,终于找到一种方案,这里引入了一个比较过时的Syntax可以提供给大家参考:

new Option([text[, value[, defaultSelected[, selected]]]]);

 

不错,这就意味着我们必须用这种new对象的方式来创建option,而不是document.createElement。示例代码如下:

var select = document.createElement("select");
var option = new Option(“Option Text”, “Value”);
select.options[0] = option;

 

测试在IE和Firefox下均可以用text和value取得原始文本值。这里不提倡用innerHTML来取值,Firefox会将这个innerHTML的内容转译一下,因此也就失去了我们的本意。

 

所以,对于一个熟练有经验的js程序员,在创建一个select组件的时候,千万记得动态创建自己的option的时候要使用这种保险的方式。

 

 

分享到:
评论

相关推荐

    js实现动态生成select中的option

    在JavaScript编程中,动态生成`select`元素中的`option`是一项常见的需求,特别是在网页交互或者数据展示时。本文将深入探讨如何使用JavaScript实现这一功能,同时结合提供的`autoSelect.html`和`autoselect.txt`...

    DWR 处理各种form表单Selectoption,table.doc

    DWR 处理各种 form 表单 Select/option,table DWR(Direct Web Remoting)是一种基于 Ajax 的远程调用技术,用于简化 JavaScript 与服务器之间的交互。DWR 可以将服务器端的 Java 对象转换为 JavaScript 对象,使得...

    IE6/7/8中Option元素未设value时Select将获取空字符串

    在IE6、IE7以及IE8这三款老版本的Internet Explorer浏览器中,存在一个与`&lt;option&gt;`元素和`&lt;select&gt;`元素交互时的特殊行为。标题所提及的问题是,当`&lt;option&gt;`标签没有明确设置`value`属性时,用户在选择该选项后,`...

    Ant design vue中的a-select在动态给option赋值之后,placeholder失效.pdf

    在实际开发过程中,我们可能会遇到一个常见问题,即当动态地给`a-select`的`option`赋值后,其`placeholder`属性失效,不再显示默认提示文本。这个问题通常出现在数据异步加载的情况下,比如从服务器获取数据并填充...

    jquery获得select option值

    var item = $("select[@name=items] option:selected").text(); ``` 这里使用了`option:selected`选择器来选取当前被选中的`&lt;option&gt;`元素,并通过`.text()`获取其文本内容。 2. **设置默认选中的下拉项**: ``...

    option的value比较来确定select默认选中项

    在网页开发中,`&lt;select&gt;`元素用于创建下拉列表,而`&lt;option&gt;`标签则定义了下拉列表中的选项。当用户加载页面时,我们希望某个特定的选项被默认选中。这通常通过比较`&lt;option&gt;`标签的`value`属性与预先设定的值来...

    js select option

    要获取JQuery对象,只需使用`$`符号,如`$('select#id')`。JQuery提供了`.val()`方法来获取或设置选中的`option`值,以及`.append()`和`.remove()`方法来添加或移除`option`。 ```javascript var $selectBox = $('#...

    jsp select 带多选框

    这里的`request.getParameterValues()`方法返回一个字符串数组,包含了用户在表单中选中的所有选项的值。 博客链接(虽然这里没有给出具体内容)通常会提供更详细的实现步骤,可能包括如何与后端交互、如何处理数据...

    可文本输入的下拉框select

    这种设计可以为用户提供更灵活的选择方式,既可以快速从预设选项中选取,也可以手动输入自定义内容。在描述的场景中,开发人员可能需要在特定页面上实现这种功能,以满足用户既能从预设的选项中进行选择,也能在没有...

    select下拉菜单

    在网页设计中,`&lt;select&gt;`元素是HTML中用于创建下拉菜单的关键组成部分。这个下拉菜单常用于提供用户在一组预定义选项中进行选择,它具有空间效率高、易于操作的特点。本教程将深入探讨如何自定义一个具有独特背景和...

    select下拉查询支持中文

    然而,在中文环境下,确保`select`下拉查询能正确显示和处理中文字符是一项重要的任务。本篇文章将深入探讨如何实现`select`下拉查询对中文的支持,包括样式设置、初始化方法以及相关的最佳实践。 首先,我们来理解...

    JS更改select内option属性的方法

    在新窗口的modify()函数中,从文本框中获取新的值,并通过opener.updateSelect()调用原窗口的updateSelect()函数,将新的值传递进去,然后在该函数中遍历所有option,找到文本匹配的option并更新其文本为新值。...

    设置select

    在网页开发过程中,经常需要对页面中的元素进行动态操作,比如清除`&lt;select&gt;`下拉列表中的选项。本文将详细介绍如何使用JavaScript实现`select`清零,并深入探讨相关的知识点。 ### 一、基本概念 #### 1.1 `...

    JQuery操作select

    总的来说,jQuery使得在JavaScript中处理select和其他HTML元素变得更加简单和直观。它的强大选择器和丰富的API使得开发者能够高效地操作DOM,提升网页交互体验。在实际开发中,熟练掌握jQuery对于操作select和其他...

    使用select2实现下拉列表动态模糊查询

    这行代码告诉Select2去处理所有带有`js-data-example-instance`类的`&lt;select&gt;`元素,为它们添加模糊查询功能。 **4. 模糊查询功能** Select2 自带了模糊查询功能。当用户在下拉框内输入字符时,它会实时过滤出匹配...

    multiple-select-master

    当 `select` 元素在表单中时,如果启用了 `multiple`,在表单提交时,所有选中的值将以逗号分隔的字符串形式发送到服务器。如果需要以数组形式发送数据,可以使用 `FormData` API。 5. **第三方库与插件** 在实际...

    select选择事件

    根据给定的信息,本文将详细解释“select选择事件”中的相关知识点,包括如何利用JavaScript处理select元素的选择事件、鼠标移动事件以及如何获取select元素的选中值。 ### 一、理解select元素及其事件 #### 1.1 ...

    一个不错的 Form 多选列表控件效果 - option, multiple, select, form,.files.rar

    `&lt;select&gt;`标签用于创建下拉列表,而`&lt;option&gt;`标签则定义了下拉列表中的选项。例如: ```html &lt;select name="choices" multiple&gt; &lt;option value="option1"&gt;Option 1&lt;/option&gt; &lt;option value="option2"&gt;Option 2...

Global site tag (gtag.js) - Google Analytics