easyui tree getChecked 和 getSelected,jq[0]的解釋
阿新 • • 發佈:2019-02-09
要想獲取上圖中這些已選的元素,只能用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; } };