JS批量勾选拿值复制

69想给他那个没有节操的网站弄个批量勾选复制链接的功能,(迅雷批量下载你懂的) 我就顺手写了一段,实现的功能是可以全选反选单选多选并复制已选的内容,复制功能仅支持IE,非IE浏览器的复制需要FLASH支持,略麻烦,在此略过.
首先这个JS可以剖尸为这几个部分:

  1. 一键全选或取消
  2. 获取checkbox的已选项
  3. 赋到另一个textarea或者input中,
  4. 然后复制这个textarea的值

这是代码

一.JS部分

function checkAll(name)//全选
{
var el = document.getElementsByTagName('input');
var len = el.length;
for(var i=0; i<len; i++)
{
if((el[i].type=="checkbox") && (el[i].name==name))
{
el[i].checked = true;
}
}
}
function clearAll(name)//反选
{
var el = document.getElementsByTagName('input');
var len = el.length;
for(var i=0; i<len; i++)
{
if((el[i].type=="checkbox") && (el[i].name==name))
{
el[i].checked = false;
}
}
}
function getChecked() {//获取checkbox已选项
var result = '';
var form = document.getElementById('getStart');
if(typeof form.xhd.length != 'undefined') {
for(var i=0; i<form.xhd.length; i++) {
if(form.xhd[i].checked) {
result += form.xhd[i].value + ' ';
}
}
} else {
if(form.xhd_type.checked) {
result += form.xhd_type.value + ' ';
}
}
if(result == '') {
document.getElementById('result').innerHTML ='';
} else {
document.getElementById('result').innerHTML = result;
}
}
function copyTo(theField,isalert)//复制
{
var obj=document.getElementById(theField);
if(obj!=null)
{
var clipBoardContent=obj.value;
obj.select();
window.clipboardData.setData("Text",clipBoardContent);
if(isalert!=false)
alert("DONE!");
}
else
{
alert("ERROR!");
}
}

二.HMTL部分

<form id="getStart" name="getStart">
<div>
<li> <input type="checkbox" name="test" value="" onclick="if(this.checked==false) { clearAll('xhd');getChecked(); } else { checkAll('xhd');getChecked(); }"/>全选/取消</li>
<li> <input type="checkbox" name="xhd" value="123" onclick="getChecked();" />链接123</li>
<li> <input type="checkbox" name="xhd" value="456" onclick="getChecked();" />链接456</li>
<li> <input type="checkbox" name="xhd" value="890" onclick="getChecked();" />链接890</li>
<li> <input type="checkbox" name="xhd" value="XXX" onclick="getChecked();" />链接XXX</li>
</div>
<div>
<textarea id="result" name="result" value="还未选择"></textarea> <button onclick="javascript:copyTo('result',true);">复制</button>
</div>
</form>

这是DEMO

  • 全选/取消
  • 链接123
  • 链接456
  • 链接890
  • 链接XXX
  • 33 Comments

    Name *

    E-mail *

    Website

    1. 婴儿游泳池

      不知道作甚用的,路过还是留名

    2. 郑永

      这篇没发现。。