如何利用js实现两个select之间的数据传递 本帖最后由 pard521 于 2012-10-17 13:13:52 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title><script type="text/javascript"> function init(){ var a=document.getElementById("TypeLevel1"); var os=a.getElementsByTagName("option"); for(var i=0;i<os.length;i++){ os[i].ondblclick=change; } } function change(){ var a=document.getElementById("TypeLeve2"); a.appendChild(this); } window.onload=init;</script></head><body><table border="0" cellpadding="0" cellspacing="0"> <tr> <td> <select id="TypeLevel1" name="TypeLevel1" size="13" style="WIDTH: 100px"> <option>1</option> <option>2</option> <option>3</option> <option>4</option> </select> </td> <td style="height: 100px" width="20"> <div style="height:100%;padding-top:80px;"> <b>→</b></div> </td> <td> <select id="TypeLeve2" name="TypeLevel2"" size="13" style="WIDTH: 100px"> <option value="">不选</option> </select> </td> </tr> </table></body></html>双击实现 <table border="0" cellpadding="0" cellspacing="0"> <tr> <td> <select id="TypeLevel1" name="TypeLevel1" size="13" style="WIDTH: 100px"> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> </select> </td> <td style="height: 100px" width="20"> <div style="height:100%;padding-top:80px;"> <b style="cursor:pointer;" onclick="move(true)">→</b><br /><br /> <b style="cursor:pointer;" onclick="move()">←</b></div> </td> <td> <select id="TypeLevel2" name="TypeLevel2" size="13" style="WIDTH: 100px"> <option value="">不选</option> </select> </td> </tr> </table> <script type="text/javascript"> function move(toRight) { var s1 = document.getElementById('TypeLevel1'), s2 = document.getElementById('TypeLevel2'); if (toRight) { if (s1.selectedIndex == -1) { alert('请选择要移动的Option!'); return; } s2.appendChild(s1.options[s1.selectedIndex]); } else { if (s2.selectedIndex == -1) { alert('请选择要移动的Option!'); return; } s1.appendChild(s2.options[s2.selectedIndex]); } } </script> <html> <head> <script type="text/javascript" src="jquery-1.8.0.js"> </script> </head> <body> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td> <select id="TypeLevel1" name="TypeLevel1" size="13" style="WIDTH: 100px"> <option selected="selected">请选择</option> <option >apple</option> <option>banana</option> </select> </td> <td style="height: 100px;border:solid 1px black" width="20"> <div style="height:100%;padding-top:80px;"> <b>→</b></div> </td> <td> <select id="TypeLeve2" name="TypeLevel2"" size="13" style="WIDTH: 100px"> </select> </td> </tr> </table> <script type="text/javascript"> $(function(){ $("table tr td:nth-child(2)").click(function(){ var option = $("#TypeLevel1>option:selected"); var optionText=option.text(); if(optionText!="请选择") { var options=$("#TypeLeve2 option"); if(options.size()<=0) { var insertStr = "<option>"+optionText+"</option>"; $(insertStr).appendTo($("#TypeLeve2")); } else { var canInsert=true; $("#TypeLeve2 option").each(function(i,n){ if($(n).text()==optionText) { canInsert=false; return; } }); if(canInsert) { var insertStr = "<option>"+optionText+"</option>"; $(insertStr).appendTo($("#TypeLeve2")); } } } }); }); </script> </body></html> 来一个支持多选的移动。鼠标按住不放拖动可以选择多个目标同时移动。想要从右往左移动只需添加leftToRight('TypeLevel2', 'TypeLeve1');即可。<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head> <title>Untitled</title></head><body> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td> <select id="TypeLevel1" name="TypeLevel1" size="13" style="WIDTH: 100px" multiple="multiple"> <option value="java">Java</option> <option value="php">PHP</option> <option value="c">C</option> <option value="c++">C++</option> <option value=".net">.NET</option> </select> </td><td style="height: 100px" width="20"> <div style="height:100%;padding-top:80px;"> <b id="leftToRight">→</b></div> </td><td> <select id="TypeLeve2" name="TypeLevel2" size="13" style="WIDTH: 100px" multiple="multiple"> <option value="">不选</option> </select> </td> </tr></table><script type="text/javascript"> var $ = function(n, pn) {return (pn||document).getElementById(n);} $('leftToRight').onclick = function() { leftToRight('TypeLevel1', 'TypeLeve2'); } function leftToRight(from, to) { this._from = $(from); this._to = $(to); var selectedIdx = this._from.selectedIndex; while (selectedIdx > -1) { var opt = this._from.options[selectedIdx]; var newopt = document.createElement('option'); newopt.value = opt.value; newopt.text = opt.text; this._to.add(newopt); this._from.remove(selectedIdx); selectedIdx = this._from.selectedIndex; } }</script></body></html> jquery 选择器问题 请问如何兼容childNodes与children dojo创建grid老没有效果 转向代码怎么改成象弹窗一样每天一次 js内存释放问题 求一判断是否超速浏览器的代码 如何用JS控制一行的字体颜色 如何在JS文件里访问取数据字段的值? 关于背景图的问题,急!!! js与jsp的数据传递!在线等 Jquery实现无限级树状结构并动态添加增删改等编辑功能 ie 7下兼容性问题,跪求帮助..
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
function init(){
var a=document.getElementById("TypeLevel1");
var os=a.getElementsByTagName("option");
for(var i=0;i<os.length;i++){
os[i].ondblclick=change;
}
}
function change(){
var a=document.getElementById("TypeLeve2");
a.appendChild(this);
}
window.onload=init;
</script>
</head><body>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<select id="TypeLevel1" name="TypeLevel1" size="13" style="WIDTH: 100px">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
</td>
<td style="height: 100px" width="20">
<div style="height:100%;padding-top:80px;">
<b>→</b></div>
</td>
<td>
<select id="TypeLeve2" name="TypeLevel2""
size="13" style="WIDTH: 100px">
<option value="">不选</option>
</select>
</td>
</tr>
</table>
</body>
</html>
双击实现
<tr>
<td>
<select id="TypeLevel1" name="TypeLevel1" size="13" style="WIDTH: 100px">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</td>
<td style="height: 100px" width="20">
<div style="height:100%;padding-top:80px;">
<b style="cursor:pointer;" onclick="move(true)">→</b><br /><br />
<b style="cursor:pointer;" onclick="move()">←</b></div>
</td>
<td>
<select id="TypeLevel2" name="TypeLevel2"
size="13" style="WIDTH: 100px">
<option value="">不选</option>
</select>
</td>
</tr>
</table>
<script type="text/javascript">
function move(toRight) {
var s1 = document.getElementById('TypeLevel1'), s2 = document.getElementById('TypeLevel2');
if (toRight) {
if (s1.selectedIndex == -1) { alert('请选择要移动的Option!'); return; }
s2.appendChild(s1.options[s1.selectedIndex]);
}
else {
if (s2.selectedIndex == -1) { alert('请选择要移动的Option!'); return; }
s1.appendChild(s2.options[s2.selectedIndex]);
}
}
</script>
<html>
<head>
<script type="text/javascript" src="jquery-1.8.0.js">
</script>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<select id="TypeLevel1" name="TypeLevel1" size="13" style="WIDTH: 100px">
<option selected="selected">请选择</option>
<option >apple</option>
<option>banana</option>
</select>
</td>
<td style="height: 100px;border:solid 1px black" width="20">
<div style="height:100%;padding-top:80px;">
<b>→</b></div>
</td>
<td>
<select id="TypeLeve2" name="TypeLevel2""
size="13" style="WIDTH: 100px">
</select>
</td>
</tr>
</table>
<script type="text/javascript">
$(function(){
$("table tr td:nth-child(2)").click(function(){
var option = $("#TypeLevel1>option:selected");
var optionText=option.text();
if(optionText!="请选择")
{
var options=$("#TypeLeve2 option");
if(options.size()<=0)
{
var insertStr = "<option>"+optionText+"</option>";
$(insertStr).appendTo($("#TypeLeve2"));
}
else
{
var canInsert=true;
$("#TypeLeve2 option").each(function(i,n){
if($(n).text()==optionText)
{
canInsert=false;
return;
}
});
if(canInsert)
{
var insertStr = "<option>"+optionText+"</option>";
$(insertStr).appendTo($("#TypeLeve2"));
}
}
}
});
});
</script>
</body>
</html>
想要从右往左移动只需添加leftToRight('TypeLevel2', 'TypeLeve1');即可。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html>
<head>
<title>Untitled</title>
</head><body>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<select id="TypeLevel1" name="TypeLevel1" size="13" style="WIDTH: 100px" multiple="multiple">
<option value="java">Java</option>
<option value="php">PHP</option>
<option value="c">C</option>
<option value="c++">C++</option>
<option value=".net">.NET</option>
</select>
</td><td style="height: 100px" width="20">
<div style="height:100%;padding-top:80px;"> <b id="leftToRight">→</b></div>
</td><td>
<select id="TypeLeve2" name="TypeLevel2" size="13" style="WIDTH: 100px" multiple="multiple">
<option value="">不选</option>
</select>
</td>
</tr>
</table><script type="text/javascript">
var $ = function(n, pn) {return (pn||document).getElementById(n);}
$('leftToRight').onclick = function() {
leftToRight('TypeLevel1', 'TypeLeve2');
} function leftToRight(from, to) {
this._from = $(from);
this._to = $(to);
var selectedIdx = this._from.selectedIndex;
while (selectedIdx > -1) {
var opt = this._from.options[selectedIdx];
var newopt = document.createElement('option');
newopt.value = opt.value;
newopt.text = opt.text;
this._to.add(newopt);
this._from.remove(selectedIdx);
selectedIdx = this._from.selectedIndex;
}
}
</script>
</body>
</html>