1. 程式人生 > >easyui tree getChecked 和 getSelected,jq[0]的解釋

easyui tree getChecked 和 getSelected,jq[0]的解釋



要想獲取上圖中這些已選的元素,只能用getChecked,

getSelected只能單選,不能多選,以下是easyui

getChecked原始碼,多選樹時使用

getChecked:function(jq){
return _4f2(jq[0]);


/*

使用例項:

var t = $('#cc').combotree('tree'); 
     var n = t.tree('getChecked');


通過$('#cc'),可以很準確的獲取想要的元素,t是一個數組

 t = [ul.tree.tree-lines]


,但只有一個元素,所以jq[0]就是ul.tree.tree-lines

陣列必須通過名字加數字獲取

*/

function _4f2(_4f3){
var _4f4=$.data(_4f3,"datagrid");
var opts=_4f4.options;
if(opts.idField){
return _4f4.checkedRows;//如果有idfield,就可以直接呼叫data裡的datagrid的checkedRows
}else{
var rows=[];
_4f4.dc.view.find("div.datagrid-cell-check input:checked").each(function(){//迴圈遍歷那些被checked的item
var _4f5=$(this).closest("tr.datagrid-row").attr("datagrid-row-index");
rows.push(opts.finder.getRow(_4f3,_4f5));
});
return rows;//返回的是所有選中的行
}
};


getSelected原始碼,多選時不能使用,單選樹使用(當tree的屬性checkbox不為true,或者combotree 不為multiple時)

getSelected:function(jq){
var rows=_4ee(jq[0]);
return rows.length>0?rows[0]:null;

}

function _4ee(_4ef){
var _4f0=$.data(_4ef,"datagrid");
var opts=_4f0.options;
var data=_4f0.data;
if(opts.idField){
return _4f0.selectedRows;
}else{
var rows=[];
opts.finder.getTr(_4ef,"","selected",2).each(function(){

//迴圈遍歷被selected的,當tree的屬性checkbox為true,或者combotree 為multiple時,

//class就不會是class="tree-node tree-node-selected",沒有selected單詞,所以這是用selected是取不到任何值的,會為null,所以多選不能用selected

//selectedRows也不會取到selected,這時是checked
var _4f1=parseInt($(this).attr("datagrid-row-index"));
rows.push(data.rows[_4f1]);
});
return rows;
}
};