js采用map取到id集合组并且实现点击一行选中一行_javascript技巧

复制代码 代码如下:

<tbody >
<tr >
<td >1</td>
<td>楼盘开业<br>折扣大大</td>
<td>2011-11-11</td>
<td>短信通知</td>
</tr>
<tr >
<td>2</td>
<td>楼盘开业<br>折扣大大</td>
<td>2011-11-11</td>
<td>短信通知</td>
</tr>
</tbody>
</table>
</div>
</div>

<div class="span7" id="right" >
<table id="table1">
<caption>详细信息列表</caption>
<thead>
<tr>
<td> <input type="checkbox" name="checkbox" id="btn"/>全选</td>
<td>短信</td>
<td>上传时间</td>
<td>备注</td>
</tr>
</thead>
<tbody id="selectable">
<tr class="dragableBox" id="box1" >
<td id="45"> <input type="checkbox" name="box1" />1</td>
<td>开会发现<br>有错</td>
<td>2011-01-30</td>
<td>五</td>
</tr>

<tr class="dragableBox" id="box2" ondragstart="test2()">
<td> <input type="checkbox" name="box2" />
2</td>
<td>开会发现<br>有错</td>
<td>2011-01-30</td>
<td>五</td>
</tr>

<tr class="dragableBox" id="box3" ondragstart="test2()">
<td> <input type="checkbox" name="box3" />
3</td>
<td>开会发现<br>有错</td>
<td>2011-01-30</td>
<td>五</td>
</tr>

<tr class="dragableBox" id="box4">
<td> <input type="checkbox" name="box4" />
4</td>
<td>开会发现<br>有错</td>
<td>2011-01-30</td>
<td>五</td>
</tr>

<tr class="dragableBox" id="box5">
<td> <input type="checkbox" name="box5"/>
5</td>
<td>开会发现<br>有错</td>
<td>2011-01-30</td>
<td>五</td>
</tr>

<tr class="dragableBox" id="box6" onclick="clickDrop()" >
<td> <input type="checkbox" name="box6" />
6</td>
<td>开会发现<br>有错</td>
<td>2011-01-30</td>
<td>五</td>
</tr>

<tr class="dragableBox" id="box7">
<td> <input type="checkbox" name="box7" />
7</td>
<td>开会发现<br>有错</td>
<td>2011-01-30</td>
<td>五</td>
</tr>
</tbody>
</table>
<input type="button" value="test" onclick="test2();"/>
<script type="text/javascript">
var map = new HashMap();
$(function(){
$("#table1 tr ").click(function(e){
var trId=this.id;
$("input[type='checkbox']").each(function(){//遍历ID
if(this.name==trId){
if(this.checked==true){
$(this).attr("checked",false);
map.remove(this.name);
var dd=document.getElementById(trId);
dd.style.backgroundColor= "white";
}else{
$(this).attr("checked",true);
map.put(this.name,trId);
var dd=document.getElementById(trId);
dd.style.backgroundColor= " #FECA40";
}

}

});
});

});

</script>

复制代码 代码如下:

function HashMap()
{
/** Map 大小 **/
var size = 0;
/** 对象 **/
var entry = new Object();

/** 存 **/
this.put = function (key , value)
{
if(!this.containsKey(key))
{
size ++ ;
}
entry[key] = value;
}

/** 取 **/
this.get = function (key)
{
if( this.containsKey(key) )
{
return entry[key];
}
else
{
return null;
}
}

/** 删除 **/
this.remove = function ( key )
{
if( delete entry[key] )
{
size --;
}
}

/** 是否包含 Key **/
this.containsKey = function ( key )
{
return (key in entry);
}

/** 是否包含 Value **/
this.containsValue = function ( value )
{
for(var prop in entry)
{
if(entry[prop] == value)
{
return true;
}
}
return false;
}

/** 所有 Value **/
this.values = function ()
{
var values = new Array(size);
for(var prop in entry)
{
values.push(entry[prop]);
}
return values;
}

/** 所有 Key **/
this.keys = function ()
{
var keys = new Array(size);
for(var prop in entry)
{
keys.push(prop);
}
return keys;
}

/** Map Size **/
this.size = function ()
{
return size;
}
}

// var map = new HashMap();

/*
map.put("A","1");
map.put("B","2");
map.put("A","5");
map.put("C","3");
map.put("A","4");
*/

/*
alert(map.containsKey("XX"));
alert(map.size());
alert(map.get("A"));
alert(map.get("XX"));
map.remove("A");
alert(map.size());
alert(map.get("A"));
*/

/** 同时也可以把对象作为 Key **/
/*
var arrayKey = new Array("1","2","3","4");
var arrayValue = new Array("A","B","C","D");
map.put(arrayKey,arrayValue);
var value = map.get(arrayKey);
for(var i = 0 ; i < value.length ; i++)
{
//alert(value[i]);
}
*/
/** 把对象做为Key时 ,自动调用了该对象的 toString() 方法 其实最终还是以String对象为Key**/

/** 如果是自定义对象 那自己得重写 toString() 方法 否则 . 就是下面的结果 **/

// function MyObject(name)
// {
// this.name = name;
// }

/**
function MyObject(name)
{
this.name = name;

this.toString = function ()
{
return this.name;
}
}
**/
// var object1 = new MyObject("小张");
// var object2 = new MyObject("小名");
//
// map.put(object1,"小张");
// map.put(object2,"小名");
// alert(map.get(object1));
// alert(map.get(object2));
// alert(map.size());
//
/** 运行结果 小名 小名 size = 1 **/

/** 如果改成复写toString()方法的对象 , 效果就完全不一样了 **/

时间: 2024-11-01 17:41:53

js采用map取到id集合组并且实现点击一行选中一行_javascript技巧的相关文章

基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)_javascript技巧

一.应用场景 鼠标hover弹出div,并且鼠标离开后不能马上隐藏,因为这个div上还有功能入口.比如: 鼠标经过好友列表中的好友头像时显示资料卡的效果如下所示: hover时显示二维码 二.实现 用如下这样一个简单的效果:鼠标hover到A上显示B来模拟 有2种实现方式,推荐第二种,第一种有弊端下面会说. 1.方法一 原理:把触发元素A和要显示元素B放于同一个父级元素内,鼠标经过父级元素时触发显示B.这样鼠标移动到B时仍然 处于该父级元素内,则div不会隐藏. 代码: <!DOCTYPE ht

Js操作Select大全(取值、设置选中等等)_javascript技巧

jquery操作select(取值,设置选中) 每一次操作select的时候,总是要出来翻一下资料,不如自己总结一下,以后就翻这里了. 比如<select class="selector"></select> 1.设置value为pxx的项选中 $(".selector").val("pxx"); 2.设置text为pxx的项选中 $(".selector").find("option[tex

JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)_javascript技巧

POP 删除最后一项 删除最后一项,并返回删除元素的值:如果数组为空则返回undefine var a = [1,2,3,4,5]; a.pop();//a:[1, 2, 3, 4] a.pop();//a:[1, 2, 3] a.pop();//a:[1, 2] shift 删除第一项 删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefine var a = [1,2,3,4,5]; a.shift(); //a:[2,3,4,5] a.shift(); //a:[3, 4,

js使用DOM设置单选按钮、复选框及下拉菜单的方法_javascript技巧

本文实例讲述了js使用DOM设置单选按钮.复选框及下拉菜单的方法.分享给大家供大家参考.具体实现方法如下: 1.设置单选按钮 单选按钮在表单中即<input type="radio" />它是一组供用户选择的对象,但每次只能选一个.每一个都有checked属性,当一项选择为ture时,其它的都变为false. 先贴上一个例子: 复制代码 代码如下: <script type="text/javascript">     function ge

JS添加删除一组文本框并对输入信息加以验证判断其正确性_javascript技巧

在做项目中遇到这样一个问题,就是我们需要添加几组数据到数据库,但是具体几组数据不确定,有客户来填写,比如我们需要添加打折策略,可能个策略有很多组方案,比如"满100打5折,满200打4折,满500打3折"等等,这是作为一组方案来执行的,但是并不确定一组方案中有几个子方案,所以,这里我用JS进行添加删除子方案,并要对方案输入的正确性加以判断,并且通过json传输写入数据库,这里我们主要写如果添加删除一组子项目和如果给每个文本框添加验证. 动态添加一组文本框: 复制代码 代码如下: var

js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)_javascript技巧

本文实例介绍了js实现图片轮播相册,具有过渡渐变效果,分享给大家供大家参考,具体内容如下 思路很简单,用2个属性保存当前图片和上一张图片,用2个定时器分别控制透明度和当前过渡的图片. <HTML> <HEAD> <TITLE></TITLE> </HEAD> <style> #cnt{width:100%;height:80%;} .ctrl{text-align:center;border:1px solid gray;font-s

js与jquery获取父级元素,子级元素,兄弟元素的实现方法_javascript技巧

先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素 原生的JS获取ID为test的元素下的子元素.可以用: 比如: <div id="dom">    <div></div>    <div></div>    <div></div></div> var

js动态获取子复选项并设计全选及提交的实现方法_javascript技巧

在做项目的时候,会遇到根据父选项,动态的获取子选项,并列出多个复选框,提交时,把选中的合并成一个字符提交后台 本章将讲述如何通过js控制实现该操作: 1:设计父类别为radio,为每一个radio都加上onclick事件,并默认类别1为选择状态. <input type="checkbox" name="selectall" id="selectall" onClick="selectAll();" checked=&q

js判断请求的url是否可访问,支持跨域判断的实现方法_javascript技巧

如下所示: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <meta name="keywords" content="js判断URL是否可访问" /> <t