jq 点击搜索 下拉框 多选 变成数组(类似百度“添加标签”功能)

JavaScript015

jq 点击搜索 下拉框 多选 变成数组(类似百度“添加标签”功能),第1张

提供一个思路,,在你添加完成后,为其中的每个span标签绑定事件,

$("#addTagDiv").html(a+"<span class='spanTag'>"+$("#textAdd").val()+"</span>")

//添加完成后重新绑定事件,我写的是click,悬停貌似是mouseover

$(".spanTag").click(function(){

alert($(this).text())//$(this)就是你当前的span了

})

如果有更好的思路,欢迎补充

方法:获取多选下拉框对象数组→循环判断option选项的selected属性(true为选中,false为未选中)→使用value属性取出选中项的值。实例演示如下:

1、HTML结构

<select id="test" multiple="true">

<option value="option-A">option-A</option>  

<option value="option-B">option-B</option>

<option value="option-C">option-C</option> 

<option value="option-D">option-D</option>

</select>

<input type="button" value="确定" onclick="fun()" />

2、javascript代码

function fun(){

var select = document.getElementById("test")

var str = []

for(i=0i<select.lengthi++){

if(select.options[i].selected){

str.push(select[i].value)

}

}

alert(str)

}

3、效果演示

Hi,你的操作就是当已经选择过的情况下你需要删除掉数组的相应值。

我帮你改写了一下,数组值需要存储选框的下标就可以了的。

<script language="javascript">

var sel = []

function OnClick() {

var i_ts_desc = document.getElementById("i_ts_desc")

var index = i_ts_desc.selectedIndex

var iHas = -1

sel.sort()

for (var i = 0i <sel.lengthi++) {

if (sel[i] == index) {

iHas = i

} else {

i_ts_desc[sel[i]].selected = true

}

}

if (iHas == -1) {

sel.push(index)

i_ts_desc[index].selected = true

} else {

sel.splice(iHas, 1)

i_ts_desc[index].selected = false

}

}

</script>

<select id="i_ts_desc" multiple="multiple" onclick="OnClick()" >

<option value="A">0</option>

<option value="B">1</option>

<option value="C">2</option>

<option value="D">3</option>

<option value="E">4</option>

<option value="F">5</option>

</select>