读书人

JS怎么获取页面中cherkbox选中后的lab

发布时间: 2013-06-25 23:45:42 作者: rapoo

JS如何获取页面中cherkbox选中后的lable和b标签的内容
本帖最后由 pard521 于 2013-04-18 10:47:35 编辑 代码段格式如下:我想获取前台checkbox选中后的lable和b标签的内容,如何写,新手,望不吝赐教!谢谢,还有一个问题,三级菜单选中的时候,如何默认让他的二级、一级菜单也选中?比如下面,我选中“产品目录信息”,默认“产品目录”和“产品工艺”前面的checkbox也处于选中状态,谢谢!


<td valign="top">
<table align="center" class="TableBlock">
<tbody><tr title="产品工艺" class="TableHeader">
<td nowrap="nowrap">
<input type="checkbox" onclick="check_all(this,'20');" id="MENU_20_16" name="MENU_20"/>
<img width="16" height="16" src="/img/menu/erp.gif"/>
<label for="MENU_20_16">
<b>产品工艺</b>
</label>
</td>
</tr>
<tr title="产品目录">
<td nowrap="nowrap" class="TableData">
<input type="checkbox" onclick="check_all_next(this,'20_2020');"value="96" id="20_17" name="20"/>
<img width="16" height="16" src="/img/menu/@work_plan.gif"/>
<label for="20_17">产品目录</label>
<br/> 
<input type="checkbox" value="97" id="20_2020_18" name="20"/>
<img width="16" height="16" src="/img/menu/work_plan.gif"/>
<label for="20_2020_18">产品目录信息</label>
<br/> 
<input type="checkbox" value="98" id="20_2020_19" name="20"/>
<img width="16" height="16" src="/img/menu/work_plan.gif"/>
<label for="20_2020_19">新建产品目录</label>
<br/> 
<input type="checkbox" value="114" id="20_2020_20" name="20"/>
<img width="16" height="16" src="/img/menu/work_plan.gif"/>
<label for="20_2020_20">产品目录维护</label>
</td>
</tr>
<tr title="工艺路线">
<td nowrap="nowrap" class="TableData">
<input type="checkbox" onclick="check_all_next(this,'20_2025');" value="126" id="20_21" name="20"/>
<img width="16" height="16" src="/img/menu/@office_Product.gif"/>


<label for="20_21">工艺路线</label>
<br> 
<input type="checkbox" value="179" id="20_2025_22" name="20"/>
<img width="16" height="16" src="/img/menu/office_Product.gif"/>
<label for="20_2025_22">工艺路线信息</label>
<br> 
<input type="checkbox" value="127" id="20_2025_23" name="20"/>
<img width="16" height="16" src="/img/menu/office_Product.gif"/>
<label for="20_2025_23">工艺路线维护</label>
<br> 
<input type="checkbox" value="607" id="20_2025_24" name="20"/>
<img width="16" height="16" src="/img/menu/office_Product.gif"/>
<label for="20_2025_24">工艺路线任务</label>
</td>
</tr>
</tbody>
</table>
</td>


[解决办法]
取 input DOM 对象的 parent tag 中的 <b> 标签中的 innerHTML
或者取 input 标签的 next tag 的next tag 的 innerHTML
用 js或者 jQuery都很好实现吧
[解决办法]
window.onload = function(){
document.onclick = function(e){
e = e
[解决办法]
window.event;
//兼容浏览器并获取事件目标
var eTarget = e.srcElement
[解决办法]
e.target;
//目标元素的标签
var eType = eTarget.nodeName.toLowerCase();
if(eType == "input"){
//为了直接获取label,这个是针对这个文档的
var contentValue = eTarget.nextSibling.nextSibling.nextSibling.nextSibling;
//检测label下是否有b标签,有的话,取第一个。
var hasB = contentValue.getElementsByTagName("b");
if(0 != hasB.length){
contentValue = hasB[0];
}
//弹出对应的值
alert(contentValue.innerHTML);
//取所有同级的input元素
var eTargetParent = eTarget.parentNode.getElementsByTagName("input");
var eTargetId = eTarget.getAttribute("id");
//取得触发元素的id,并判断是否为这三个id,是的话,代表选择了总类的那个input
if(eTargetId =="MENU_20_16"
[解决办法]
eTargetId =="20_17"
[解决办法]
eTargetId=="20_21" ){alert("123");
if(eTargetParent[0].checked){
for(var i=1;i<eTargetParent.length;i++){


eTargetParent[i].checked = true;
}
}else{
for(var i=1;i<eTargetParent.length;i++){
eTargetParent[i].checked = false;
}
}
}else{
//否则的话,是选择了分类的input
var flag = 0;
for(var i=1;i<eTargetParent.length;i++){
if(eTargetParent[i].checked == true){
flag++;
}
}
//只要有一个分类input是被选中的状态,那么总类的也是被选中
if(!flag){
eTargetParent[0].checked = false;
}else{
eTargetParent[0].checked = true;
}
}
}
}
};



试试能不能行,不知道这个是在哪搞的代码,写的有些没有层次性,向总类和分类,让总类和分类作为兄弟元素写,还是挺不好的。

读书人网 >JavaScript

热点推荐