JS如何动态给select的option赋值?

JS如何动态给select的option赋值?,第1张

JS动态给select的option赋值的具体 *** 作步骤如下:

1、首先我们打开JS软件,点击界面左上角file选项目录下的new选项,再选择java project 新建web项目 *** 作。

2、 *** 作上图后进入下图界面,输入项目名点击下一步直到完成。

3、建立完成后,项目结构如下图。

4、在超链接中设置调用函数用于更新option,代码如下图红框所选。

5、在change函数中获取seclect项,获取option的数量,遍历option获取选中的option更新选中项。

6、最后看一下运行的效果,此时我们可以动态输入数值给select的option赋值。

<select id="ddlResourceType" onchange="getvalue(this)">

</select>

动态删除select中的所有options:

document.getElementById("ddlResourceType").options.length=0

动态删除select中的某一项option:

document.getElementById("ddlResourceType").options.remove(indx)

动态添加select中的项option:

document.getElementById("ddlResourceType").options.add(new Option(text,value))

上面在IE和FireFox都能测试成功,希望以后你可以用上。

其实用标准的DOM *** 作也可以,就是document.createElement,appendChild,removeChild之类的。

取值方面

function getvalue(obj)

{

var m=obj.options[obj.selectedIndex].value

alert(m)//获取value

var n=obj.options[obj.selectedIndex].text

alert(n)//获取文本

}

虽然不太明白为什么refresh方法不起作用,不过还有另外一个方法:

// data 是ajax返回的json数据

$.get("xxx.html?a=" + a, function (data) {

var site = new Array()

$.each(data, function(index, values) {

    //循环将data数据的结构重新调整为下面这样的:[{label:xxx,value:id}]

    // laebl相当于option的文字,value则是option的value,结构不能错

site.push({

label : values.site_name,

value : values.id

})

})

//重点是这里,不用refresh方法,用下面这个。

$("#site_id").multiselect('dataprovider',site)

})

如果你在查询数据库的时候直接就这样:

select id as value, city_name as label from 表名

那么返回值在js那里就不需要循环改变结构了,直接可以用:

$("#site_id").multiselect('dataprovider',data)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11384630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存