JS一个功能,给商品添加标签,添加N个,如何删除其中一个呢,

JS一个功能,给商品添加标签,添加N个,如何删除其中一个呢,,第1张

循环做. 把代码复制进一个html文件中在浏览器打开点击某一个li就可以看到效果了

<html>

<head>

<meta http-equiv="Content-Type" content="text/html charset=utf-8" />

<title>无标题文档</title>

</head>

<body>

<div id="list">

<li class="a1">第一个</li>

<li class="a12">第二个</li>

<li class="a13">第三个</li>

<li class="a14">第四个</li>

<li class="a51">第五个</li>

<li class="a16">第六个</li>

</div>

</body>

<script>

function js(id){ return document.getElementById(id) }

var li = js("list").getElementsByTagName("li").length

for(var i=0i<lii++)

{

js("list").getElementsByTagName("li")[i].onclick = function(){

this.remove()

}

}

</script>

</html>

<HTML>

<HEAD>

<TITLE>选择下拉菜单-www.51windows.Net</TITLE>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">

<META NAME="Description" CONTENT="Power by 51windows.Net">

</HEAD>

<BODY>

<p>选定一项或多项然后点击添加或移除(按住shift或ctrl可以多选),或在选择项上双击进行添加和移除。</p>

<form method="post" name="myform">

<table border="0" width="300">

<tr>

<td width="40%">

<select style="width:100%" multiple name="list1" size="12" ondblclick="moveOption(document.myform.list1, document.myform.list2)">

<option value="北京">北京</option>

<option value="上海">上海</option>

<option value="山东">山东</option>

<option value="安徽">安徽</option>

<option value="重庆">重庆</option>

<option value="福建">福建</option>

<option value="甘肃">甘肃</option>

<option value="广东">广东</option>

<option value="广西">广西</option>

<option value="贵州">贵州</option>

<option value="海南">海南</option>

<option value="河北">河北</option>

<option value="黑龙江">黑龙江</option>

<option value="河南">河南</option>

<option value="湖北">湖北</option>

<option value="湖南">湖南</option>

<option value="内蒙古">内蒙古</option>

<option value="江苏">江苏</option>

<option value="江西">江西</option>

<option value="吉林">吉林</option>

<option value="辽宁">辽宁</option>

<option value="宁夏">宁夏</option>

<option value="青海">青海</option>

<option value="山西">山西</option>

<option value="陕西">陕西</option>

<option value="四川">四川</option>

<option value="天津">天津</option>

<option value="西藏">西藏</option>

<option value="新疆">新疆</option>

<option value="云南">云南</option>

<option value="浙江">浙江</option>

<option value="香港">香港</option>

<option value="澳门">澳门</option>

<option value="台湾">台湾</option>

<option value="其他">其他</option>

</select>

</td>

<td width="20%" align="center">

<input type="button" value="添加" onclick="moveOption(document.myform.list1, document.myform.list2)"><br><br>

<input type="button" value="删除" onclick="moveOption(document.myform.list2, document.myform.list1)">

</td>

<td width="40%">

<select style="width:100%" multiple name="list2" size="12" ondblclick="moveOption(document.myform.list2, document.myform.list1)">

</select>

</td>

</tr>

</table>

值:<input type="text" name="city" size="40" value="" />

</form>

<script language="JavaScript">

<!--

function moveOption(e1, e2){

try{

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

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

var e = e1.options[i]

e2.options.add(new Option(e.text, e.value))

e1.remove(i)

i=i-1

}

}

document.myform.city.value=getvalue(document.myform.list2)

}

catch(e){}

}

function getvalue(geto){

var allvalue = ""

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

allvalue +=geto.options[i].value + ","

}

return allvalue

}

//-->

</script>

</BODY>

</HTML>

下标有误.

就拿arr来说,

第一个循环后,list[i]=1,删除的是b,arr此时为["a","c"].

第二个循环后,list[i]=3,此时arr[3],是没有值的,甚至arr[2]都没有.此时arr还是["a","c"]

最后arr为["a","c"]

同理,其他的是留下了第一和第三个元素,即下标为0,2(循环结束后当然是1了)的元素。

alert的结果也就是 a,c1,3A,C 了


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存