jQuery操作JSF中的Checkbox树

jQuery操作JSF中的Checkbox树
下面的代码是,当选中父节点,则子节点全选;选中任意一个子节点,则选中父节点


jQuery.noConflict();//与JSF搭配需要这句话,不然会有冲突
jQuery(document).ready(function() {
// Add click event listener to each checkbox in the tree page
// Note! Using this simple selector assumes that there are no other
// checkboxes on the page, if there are other checkboxes then
// selector should be changed
jQuery(":checkbox").click(function(){
updateChildren(this);
updateParent(this);
});
});
</script>
<script type="text/javascript">
function updateChildren(currentCheckBox)
{
// Get state of current checkbox (true or false)
var state = currentCheckBox.checked;

// Get parent TABLE, where current checkbox is places
var parentTables = jQuery(currentCheckBox).parents("table");
var parentTable = parentTables[0];

// Get DIV where child nodes with checkboxes are situated
// See http://docs.jquery.com/Traversing/ to get better uderstanding of
// parents() and next()
var childDivs = jQuery(parentTable).next("div");
if( childDivs.length > 0 )
{
var childDiv = childDivs[0];

// Iterate over all child nodes checkboxes and set same state as the
// current checkbox state
jQuery(childDiv).contents().find(":checkbox").each(function() {
this.checked = state;
});
}

}

//更新父节点的方法,如果子节点全部选中则父节点选中,如果子节点中有一个选中,则父节点也选中
function updateParent(currentCheckbox) {
var parentDivs = jQuery(currentCheckbox).parents("div");
var parentDiv = parentDivs[0];

var hasSelected = false;

jQuery(parentDiv).contents().find(":checkbox").each(function() {
if(this.checked) {
hasSelected = true;
}
});

var parentTables = jQuery(parentDiv).prev("table");
if(parentTables.length > 0)
{
var parentTable = parentTables[0];

var parentCheckboxes = jQuery(parentTable).find(":checkbox");
var parentCheckbox = parentCheckboxes[0];

parentCheckbox.checked = hasSelected ;
}

}
下面的代码是,当选中父节点,则子节点全选;选中所有子节点,则选中父节点
jQuery.noConflict();//与JSF搭配需要这句话,不然会有冲突
jQuery(document).ready(function() {
// Add click event listener to each checkbox in the tree page
// Note! Using this simple selector assumes that there are no other
// checkboxes on the page, if there are other checkboxes then
// selector should be changed
jQuery(":checkbox").click(function(){
updateChildren(this);
updateParent(this);
});
});
</script>
<script type="text/javascript">
function updateChildren(currentCheckBox)
{
// Get state of current checkbox (true or false)
var state = currentCheckBox.checked;

// Get parent TABLE, where current checkbox is places
var parentTables = jQuery(currentCheckBox).parents("table");
var parentTable = parentTables[0];

// Get DIV where child nodes with checkboxes are situated
// See http://docs.jquery.com/Traversing/ to get better uderstanding of
// parents() and next()
var childDivs = jQuery(parentTable).next("div");
if( childDivs.length > 0 )
{
var childDiv = childDivs[0];

// Iterate over all child nodes checkboxes and set same state as the
// current checkbox state
jQuery(childDiv).contents().find(":checkbox").each(function() {
this.checked = state;
});
}

}

//更新父节点的方法,如果子节点全部选中则父节点选中,如果子节点中有一个未选中,则父节点也未选中
function updateParent(currentCheckbox) {
var parentDivs = jQuery(currentCheckbox).parents("div");
var parentDiv = parentDivs[0];

var hasSelected = true;

jQuery(parentDiv).contents().find(":checkbox").each(function() {
if(!this.checked) {
hasSelected = false;
}
});

var parentTables = jQuery(parentDiv).prev("table");
if(parentTables.length > 0)
{
var parentTable = parentTables[0];

var parentCheckboxes = jQuery(parentTable).find(":checkbox");
var parentCheckbox = parentCheckboxes[0];

parentCheckbox.checked = hasSelected ;
}

}


声明:此文章从 [u]http://www.blogjava.net/TiGERTiAN/archive/2009/12/27/307463.html[/u]
转载过来的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值