`

用javascript动态整体替换修改下拉列表option的内容

阅读更多
<html>

<script>
function test() {
var childRet = document.getElementById('sel');
for (var i = childRet.childNodes.length-1; i >= 0; i--) {
childRet.removeChild(childRet.childNodes.item(i));
}


var tmpRet = {
"DATA": {"name": "saj", "pass": "abc", "X": "X"}
};
var ret = document.createDocumentFragment();
var tmpObj = tmpRet["DATA"];
for (var key in tmpObj)
{
if(key != "X") {
var newop = document.createElement("option");
newop.id = key;
newop.value = key;
newop.appendChild(document.createTextNode(tmpObj[key]));
ret.appendChild(newop);
}
}

document.getElementById('sel').appendChild(ret);

   }


</script>
<body>
<form>
<select id="sel">
<option>aa</option>
<option>bb</option>
</select>
<input type="button" onclick="test()" value="childNodes"/>
</form>
</body>
</html>

以上已经在IE测试通过
原来select内容是aa,bb,点按钮后内容变成saj,abc

document.createDocumentFragment
添加节点的时候使用
对于少量的更新,可以不使用
然而,当要添加大量数据时,如果逐个添加这些节点,这个过程有可能会十分缓慢。为解决这个问题,可以创建一个文档碎片,把所有的新节点附加其上,然后把文档碎片的内容一次性添加到document中。

假设你想创建十个新段落。你可能这样写
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
</HEAD>
<script defer>
var arrText = ["1", "2", "3","4", "5","6","7","8","9","10"];
for ( var i = 0; i < arrText.length ;i++ )
{
var op = document.createElement("p");
var oText = document.createTextNode(arrText[i]);
op.appendChild(oText);
document.body.appendChild(op);
}
</script>
<BODY>
</BODY>
</HTML>


这段代码运行良好,但问题是它调用了十次document.body.appendChild(),每次要产生一次页面刷新。这时,文档碎片会更高效:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
</HEAD>
<script defer>
var arrText = ["1", "2", "3","4", "5","6","7","8","9","10"];
var oFrag = document.createDocumentFragment();
for ( var i = 0; i < arrText.length ;i++ )
{
var op = document.createElement("p");
var oText = document.createTextNode(arrText[i]);
op.appendChild(oText);
oFrag.appendChild(op);
}
document.body.appendChild(oFrag);
</script>
<BODY>
</BODY>
</HTML>
分享到:
评论

相关推荐

    固定宽度下拉列表select中option内容显示不全问题解决方法

    例如,可以创建一个`&lt;div&gt;`,使其看起来像下拉列表,然后使用`:before`或`:after`伪元素来显示`&lt;option&gt;`的内容。 对于不希望引入额外库或使用JavaScript的场景,可以尝试调整`&lt;select&gt;`元素的`width`属性。但是,...

    js处理下拉列表框

    根据给定的信息,本文将详细解释JavaScript代码片段中涉及的关键概念和技术细节,这些技术主要用于处理HTML页面中的下拉列表框。 ### 一、JavaScript与HTML交互基础 在深入解析这段代码之前,我们先来了解一些基本...

    JQuery关于下拉列表的操作

    ### JQuery关于下拉列表的操作 在Web开发中,下拉列表是用户界面中常见的交互元素之一,用于提供一系列选项供用户选择。通过JQuery库,我们可以轻松地与这些下拉列表进行交互,实现诸如获取选中值、设置选中项等...

    ajax动态提示下拉列表

    在网页设计中,Ajax(Asynchronous JavaScript and XML)技术被广泛用于实现动态交互效果,其中“Ajax 动态提示下拉列表”是一个常见的应用场景。这种功能允许用户在输入框中输入字符时,通过Ajax请求从服务器获取...

    Ajax实现下拉列表从数据库读取数据级联

    5. **更新UI**:用新生成的选项替换二级下拉列表的现有内容,使用户看到级联效果。 具体代码示例(使用jQuery和Ajax): ```html &lt;!-- HTML --&gt; &lt;!-- 省份选项 --&gt; &lt;!-- 城市选项 --&gt; ...

    jquery ajax 实现省市县下拉列表联动

    在网页开发中,实现省市县下拉列表联动是一种常见的需求,尤其在填写地址或选择地理位置时。...无论使用哪种方式,实现省市县联动的核心思路是一致的:监听上一级选择的变化,动态加载和更新下拉列表。

    下拉列表框操作_finished.rar

    根据标题和描述,我们可以推测这是一个关于使用Uibot处理下拉列表框的中级实践练习,其中ABC三个空需要填写相应的Uibot语句来实现功能。 首先,我们需要了解Uibot中处理下拉列表框的基本方法。Uibot提供了`选择`...

    jquery动态添加option

    这种方法在处理动态获取的数据时非常有用,比如从服务器端获取数据后填充下拉列表。 除了`append()`,还有其他方法可以实现类似功能。例如,`html()`方法可以替换元素内所有的子节点,而`before()`或`after()`则...

    css 设置下拉列表 select 样式

    由于直接修改`&lt;select&gt;`的样式受限,我们可以使用`&lt;div&gt;`或者其他元素模拟下拉列表,并通过JavaScript进行交互处理。这种方法称为“自定义下拉菜单”或“下拉列表替换”。这需要结合CSS伪类、`:hover`、`:focus`等来...

    JS下拉按钮列表控件

    例如,可以使用虚拟滚动技术只渲染视口内的选项,或者在下拉列表展开前先加载数据,以减少初次渲染时的延迟。 7. **自定义事件和扩展** 对于复杂的业务逻辑,你可能需要添加自定义事件监听器,以便在用户选择某个...

    javascript 模拟select下拉列表特效

    本文将详细介绍如何使用JavaScript实现一个模拟下拉列表的特效。 首先,让我们了解HTML的`&lt;select&gt;`元素和`&lt;option&gt;`元素。`&lt;select&gt;`用于创建一个下拉列表,用户可以从提供的选项中选择一个。`&lt;option&gt;`元素则定义...

    jquery 多个下拉列表相互作用

    在这个场景中,用户首先从一个下拉列表选择国家,接着根据选定的国家,第二个下拉列表会动态更新为相应国家的城市,最后,当城市被选中时,第三个下拉列表会显示该城市的乡镇。这样的设计可以提供一种直观且高效的...

    select option带自定义图片

    `&lt;option&gt;`元素定义了下拉列表中的一个选项。例如: ```html &lt;option value="option1"&gt;Option 1&lt;/option&gt; &lt;option value="option2"&gt;Option 2&lt;/option&gt; &lt;option value="option3"&gt;Option 3&lt;/option&gt; ``` 但是,...

    JS+CSS和图片美化select下拉列表选择框

    综上所述,通过结合JavaScript和CSS,我们可以对`select`下拉列表选择框进行深度美化,包括调整基本样式、添加自定义图片,甚至实现复杂的交互效果。在`select美化选择框.htm`这个示例文件中,我们可以看到一个完整...

    ASP网页选择下拉列表的值时立即更新到数据库

    首先,我们需要创建ASP页面,包含一个下拉列表和必要的JavaScript代码。下拉列表可以通过HTML `&lt;SELECT&gt;` 标签来创建,每个选项则由 `&lt;OPTION&gt;` 标签定义。例如: ```html ()"&gt; &lt;option value="value1"&gt;Option 1&lt;/...

    jQuery自定义表单选择框效果改变平淡无奇的下拉列表.zip

    在这个项目中,jQuery被用来替换或增强HTML的`&lt;select&gt;`和`&lt;option&gt;`元素,创建出具有定制化外观和行为的下拉列表。 在实际应用中,这个自定义选择框可能包括以下特点: 1. **美化样式**:通过CSS自定义样式,可以...

    jquery+css3美化select下拉列表框特效

    这个文件通常会包含jQuery函数,用于监听`&lt;select&gt;`元素的事件,并执行相应的美化操作,比如用自定义的HTML结构替换原生的`&lt;option&gt;`,并添加动态效果。 通过这种方式,开发者可以创造出一个既实用又美观的下拉列表...

    js获取下拉列表框&lt;option&gt;中的value和text的值示例代码

    首先,`&lt;option&gt;`标签用于创建下拉列表中的选项。它有两个关键属性: 1. `value`:这个属性定义了选项的值,通常用于服务器端处理或作为数据传递。例如,在`&lt;option value="value-a"&gt;text-a&lt;/option&gt;`中,`value-a`...

    jquery UI下拉列表选择菜单.zip

    本文将深入探讨如何使用jQuery UI库来创建功能丰富的下拉列表选择菜单,同时提供一份实际可运行的代码示例,帮助开发者更好地理解和应用这一技术。 jQuery UI 是一个基于jQuery库的扩展,提供了丰富的用户界面组件...

    js Select下拉列表框进行多选、移除、交换内容的具体实现方法

    在开发web页面时,下拉列表框(SELECT元素)是经常被使用的表单元素之一,它允许用户从预定义的选项中选择一项或多项。在实际应用中,我们可能会遇到需要对SELECT下拉列表进行复杂操作的情况,比如实现多选、移除或...

Global site tag (gtag.js) - Google Analytics